Trang 2 trên tổng số 2 Đầu tiênĐầu tiên 12
Từ 11 tới 17 trên tổng số 17 kết quả

Đề tài: Thuật toán tìm số ngẫu nhiên ( không sử dụng hàm Rand)

  1. #11
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Thuật toán tìm số ngẫu nhiên ( không sử dụng hàm Rand)

    anh không nói đến thuật toán con này thì làm sao mà bọn em biết được nó là cái gì trờixin anh cho biết tên
    Source sưu tầm đã lâu nên bây h hỏi tên anh cũng chịu. Với lại muốn hiểu những đoạn code này phải có căn bản C rất vững và hiểu biết về các thuật toán mã hóa văn bản. Nhiều khi anh cũng muốn tìm hiểu nhưng cũng kẹt việc học ở trường nên cũng đành potay T_T !

  2. #12
    Ngày gia nhập
    02 2008
    Bài viết
    88

    Trích dẫn Nguyên bản được gửi bởi coder_gate Xem bài viết
    chủ yếu người ta muốn biết cái thuật toán tìm số ngẫu nhiên là gì để mà có thể đoán mò được các số ngẫu nhiên không ,không biết nếu áp dụng vào lô tô thì thế nào nhỉ
    Đây là chương trình mình viết bằng VB6 kết họp ran và mảng làm cái quay số
    Attached Thumbnails Attached Thumbnails quayso.jpg  
    Attached Files Attached Files
    Mình từ Caulacbovb qua)
    Giã từ VB6 đến với VB.Net, C# và Java.

  3. #13
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    394

    Trích dẫn Nguyên bản được gửi bởi coder_gate Xem bài viết
    anh không nói đến thuật toán con này thì làm sao mà bọn em biết được nó là cái gì trờixin anh cho biết tên
    Cả 2 bài code của RR đều thực hiện cùng một thuật toán tên là Mersenne Twister, thường được gọi là MT19937 vì sinh các số giả ngẫu nhiên lặp lại với chu kỳ Công thức toán học Latex. Chu kỳ này rất lớn, có thể xem là vô hạn cho mọi nhu cầu thực tế.
    Đã được chỉnh sửa lần cuối bởi Ada : 29-10-2008 lúc 02:53 AM.

  4. #14
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    394

    Sau đây là một thuật toán mới thuộc về Melissa O'Neill, nữ giáo sư khoa học máy tính người Mỹ.
    https://www.cs.hmc.edu/~oneill/index.html.
    Code do nữ tác giả cung cấp. Nguồn: http://www.pcg-random.org/download.html#minimal-c-implementation
    C Code:
    1. //======================================================================
    2. // *Really* minimal PCG32 code / (c) 2014 M.E. O'Neill / pcg-random.org
    3. // Licensed under Apache License 2.0 (NO WARRANTY, etc. see website)
    4. //======================================================================
    5. #include <inttypes.h>
    6. //----------------------------------------------------------------------
    7. typedef struct { uint64_t state;  uint64_t inc; } pcg32_random_t;
    8. //----------------------------------------------------------------------
    9. uint32_t pcg32_random_r(pcg32_random_t* rng)
    10. {
    11.     uint64_t oldstate = rng->state;
    12.     rng->state = oldstate * 6364136223846793005ULL + (rng->inc|1);
    13.     uint32_t xorshifted = ((oldstate >> 18u) ^ oldstate) >> 27u;
    14.     uint32_t rot = oldstate >> 59u;
    15.     return (xorshifted >> rot) | (xorshifted << ((-rot) & 31));
    16. }

    Cách dùng sơ đẳng. Code dưới đây hoàn toàn là của mình sáng tác.
    (c) 2017 Ada at congdongcviet.com.
    C Code:
    1. ////////////////////////////////////////////////////////////////////////
    2. // DIFFUSENHOPEBESTCONFVZENTHROWDICENSAZSADATLAZTQOZMEONEILLSDAMNRITE //
    3. ////////////////////////////////////////////////////////////////////////
    4. #include <stdio.h>
    5.  
    6. int main()
    7. {
    8.     pcg32_random_t r;
    9.     for(int n=200;n;n--){
    10.         printf("%10.8X", pcg32_random_r(&r));
    11.     }
    12. }
    13. ////////////////////////////////////////////////////////////////////////
    14. // DIFFUSENHOPEBESTCONFVZENTHROWDYCECIAZSADATLAZTQOZMELISSAZDAMNRYGHT //
    15. ////////////////////////////////////////////////////////////////////////

    Cách dùng nâng cao. Để chuỗi số sinh ra biến thiên, hãy gán cho state giá trị ban đầu (seed) biến thiên. Để mô phỏng nhiều biến ngẫu nhiên độc lập (hay 1 vector ngẫu nhiên), hãy khai báo nhiều biến (hay một mảng) kiểu pcg32_random_t và gán cho inc của mỗi biến (hay mỗi phần tử của mảng) một giá trị phân biệt.

    Khi còn bé, mình đọc được ở thư viện một quyển sách phổ biến khoa học máy tính xuất bản từ những năm 196x, tên là Con số và Tư duy, có đưa ra một câu chuyện giả định về một chú khỉ con "quậy" một cái máy chữ. (Ai không biết máy chữ là gì thì có thể tưởng tượng nó như một cái... iPad!) Nếu chú khỉ con kiên nhẫn bên bàn phím thì sau một chuỗi dài dằng dặc các ký tự hỗn loạn, đến lúc nào đấy chú ta cũng sẽ vô tình gõ ra vở bi kịch Othello của đại thi hào W. Shakespeare. Đó là ví dụ minh họa sức mạnh vô cùng của sự ngẫu nhiên.

    Chất lượng của số [giả] ngẫu nhiên từ thuật toán PCG này được thể hiện qua một ví dụ do chính nữ tác giả của nó viết lên blog gần đây. Ví dụ ấy giống hệt ví dụ trên, chỉ khác là lần này, vở bi kịch là Hamlet.

    Và khác biệt nữa, Othello là giả tưởng của những năm 196x, còn Hamlet là thực tế của những năm 201x: thật vậy, sau một chuỗi dài dằng dặc các số "ngẫu nhiên", PCG đã sinh ra vở kịch này chính xác và trọn vẹn, ở định dạng nén .xz (giống .7z). Xem http://www.pcg-random.org/party-tricks.html.

    Tuy vậy, xin bà con chớ hiểu lầm. PCG là một họ thuật toán với nhiều cỡ khác nhau. Phiên bản mà mình copy paste về đây chỉ là phiên bản bé nhất, thích hợp để thay thế rand() trong những bài tập nho nhỏ. Phiên bản "khỉ gõ máy chữ" ra vở Hamlet, thích hợp cho những ứng dụng nghiêm túc, thì to hơn. Tài liệu thiết kế và mã nguồn tất cả các phiên bản đều có ở Website thuật toán (xem comment ở đầu mã nguồn), và cả trên GitHub.
    Đã được chỉnh sửa lần cuối bởi Ada : 13-11-2017 lúc 10:00 AM. Lý do: Thêm cách dùng nâng cao
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  5. #15
    Ngày gia nhập
    01 2013
    Bài viết
    1,476

    Trích dẫn Nguyên bản được gửi bởi anhtuyenbk Xem bài viết
    Theo mình thì ko cần phải viết một hàm Ran khác làm gì, vì két quả cuối cùng cũng là một con số thập phân mà thôi.
    Thay vào đó nên kết hợp giữa hàm ran và mảng thì sẽ tạo ra các số ngẫu nhiên rất ngấu nhiên.
    Hướng này viết anti-GPU alg (memory-bound) thì phù hợp hơn.

    Để kiểm tra RNG thì cần phải đánh giá theo nhiều tiêu chí, đa phần rất khó hiểu.

  6. #16
    Ngày gia nhập
    08 2017
    Bài viết
    174

    Mặc định Thuật toán tìm số ngẫu nhiên ( không sử dụng hàm Rand)

    Trích dẫn Nguyên bản được gửi bởi prog10 Xem bài viết
    Hướng này viết anti-GPU alg (memory-bound) thì phù hợp hơn.

    Để kiểm tra RNG thì cần phải đánh giá theo nhiều tiêu chí, đa phần rất khó hiểu.
    Ku nè, thấy cu nói hơi nhiều, cu kiến thức math tới đâu mà nói lắm thể

  7. #17
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    308

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Ku nè, thấy cu nói hơi nhiều, cu kiến thức math tới đâu mà nói lắm thể
    Lại thế nữa rồi
    Tỏ vẻ bề trên

Các đề tài tương tự

  1. Tạo biến ngẫu nhiên kiểu float sử dụng hàm rand() trong C/C++ như thế nào?
    Gửi bởi 50902116 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 24
    Bài viết cuối: 27-02-2014, 04:35 PM
  2. thuật toán sắp xếp ngẫu nhiên trong lập trình C#
    Gửi bởi b0yt4l3nt9z trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 05-04-2011, 02:49 PM
  3. Code C++ Các Thuật Toán Tạo Số Ngẫu Nhiên
    Gửi bởi thangnv trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 16-03-2011, 11:50 PM
  4. Nhập ngẫu nhiên 1 ma trận bằng hàm rand()
    Gửi bởi kienchochethahaha trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 19-05-2010, 05:43 PM
  5. Tạo ngẫu nhiên trên C++ (hàm rand())
    Gửi bởi anhhaibi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 22-05-2009, 10:31 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn