On 23 Tháng Tư, 09:17, Cong Dang Chien <hatza...@gmail.com> wrote:
> Nếu N lớn thì giăng một mảng 1..N là không khả thi. Nếu ai đó có yêu cầu đặc
> biệt với số ngẫu nhiên thì nên tìm hiểu xem các thuật toán sinh số ngẫu
> nhiên nó hoạt động thế nào. Thực chất là giả ngẫu nhiên chứ không phải là
> ngẫu nhiên thật!
>
> 2009/4/23 Khoa Nguyen <instc...@gmail.com>
>
> > Cách khác hay hơn nè :-"
> > - Tạo 1 mảng A gồm N phần tử; B gồm M phần tử.
> > - T = 0, Lặp:
> > + Random 1 số K trong khoảng [T -> N - 1], lấy ra số X = A[K] cất vào B[T].
> > + Hoán vị A[K] và A[T].
> > + T = T + 1.
> > + Nhảy tới "Lặp" cho đến khi nào T = M
>
> > Cách này chắc chắn chạy nhanh hơn và đỡ tốn CPU hơn cái array_shuffle
> > 1000000000 lần =))
>
> > 2009/4/22 btnguyen2k <btnguye...@gmail.com>
On 23 Tháng Tư, 08:48, Khoa Nguyen <instc...@gmail.com> wrote:
> Cách khác hay hơn nè :-"
> - Tạo 1 mảng A gồm N phần tử; B gồm M phần tử.
> - T = 0, Lặp:
> + Random 1 số K trong khoảng [T -> N - 1], lấy ra số X = A[K] cất vào B[T].
> + Hoán vị A[K] và A[T].
> + T = T + 1.
> + Nhảy tới "Lặp" cho đến khi nào T = M
>
> Cách này chắc chắn chạy nhanh hơn và đỡ tốn CPU hơn cái array_shuffle
> 1000000000 lần =))
>
> 2009/4/22 btnguyen2k <btnguye...@gmail.com>
>
>
>
> > Tạo 1 cái mảng từ 1...N rồi array_shuffle và lấy ra M phần tử của
> > nó ;-)
>
> > On Apr 22, 7:59 pm, Thanh Quang <quan...@gmail.com> wrote:
> > > Mình có viết 1 cái hàm tạo random như sau :
>
> > > function randomInt($max = 1)
> > > {
> > > $m = 1000000;
> > > return ((mt_rand(1,$m * $max)-1)/$m);
> > > }
> > > Kết quả trả về mình đem chứa vào 1 mãng A, sau đó mình viết một hàm
> > truyền 2
> > > tham số là mãng A, và 1 giá trị B, mình kiểm tra nếu B tồn tại trong mãng
> > A
> > > rồi thì gọi hàm randomInt lại, nhưng nếu giới hạn random nhõ thì việc này
> > > làm được, nhưng nếu mình giới hạn lớn thì việc này lại vô cùng nặng nề.
> > Các
> > > bác có ý kiến nào về việc tạo random một khoảng số mà không bị trùng lắp
> > > không? Cám ơn trước !
> > > --
> > > Blog:http://www.camauonline.net
> > > YM!: camauonline- Ẩn nội dung trích dẫn -
>
> - Hiển thị văn bản được để trong dấu trích dẫn -
Bác ra bài nầy chắc đang luyện thi cao học bên Bưu Chính Viễn Thông hihi. On 23 Tháng Tư, 09:17, Cong Dang Chien <hatza...@gmail.com> wrote:Nếu N lớn thì giăng một mảng 1..N là không khả thi. Nếu ai đó có yêu cầu đặc biệt với số ngẫu nhiên thì nên tìm hiểu xem các thuật toán sinh số ngẫu nhiên nó hoạt động thế nào. Thực chất là giả ngẫu nhiên chứ không phải là ngẫu nhiên thật!