01/10/2018, 13:55

Không biết game tài xỉu các con xí ngầu được lập trình qua thuật toán ngẫu nhiên nào nhỉ?

Không biết game tài xỉu các con xí ngầu được lập trình qua thuật toán ngẫu nhiên nào nhề các bac

Phạm Phú Phi Phương viết 16:00 ngày 01/10/2018

Với Java mình dùng Random() để lấy 3 giá trị của viên xí ngầu trong khoảng từ 1 đến 6
Tiếp theo cộng cả ba giá trị lại rồi đưa ra kết quả
Cuối cùng lập điều kiện bằng if() else() nếu tổng số nút trên 3 mặt xí ngầu từ 4-10 thì đó là Xỉu, còn 11-17 là Tài.

Trần Hoàn viết 16:05 ngày 01/10/2018

Không ổn bạn ơi, vì để như vậy thì tỉ lệ để ra 3 - 4 sẽ cao hơn nhiều so với ra 1 hoặc 6
Cứ tung 1 lần là được, còn muốn phức tạp thì tung lấy vài lần rồi lấy số có trọng số cao nhất.

cdxf viết 15:57 ngày 01/10/2018

Mình thấy bình thường mà, họ chơi ngoài đời sao thì cứ code như vậy. Thuật toán Random là phân bố đều nên không có gì khác cả.

Trần Hoàn viết 15:56 ngày 01/10/2018

À mình đọc nhầm, tưởng bạn ấy lấy cộng vào chia 3 để ra con xí ngầu

Xúc sắc thì cứ dùng thuật toán random (1-6) của ngôn ngữ lập trình, nếu muốn phức tạp hơn thì bạn lấy thêm seed là một số không thể dự đoán được, chẳng hạn như Tổng số người chơi đang online trong tất cả các server.

rogp10 viết 16:08 ngày 01/10/2018

Làm thế thì thế nào cũng có người tìm ra quy luật.

Trần Hoàn viết 16:06 ngày 01/10/2018

Tìm ra quy luật cũng chưa chắc làm gì được, vì seed được tạo ra một cách ngẫu nhiên (thực sự). Tất nhiên cũng có sơ hở, nhưng ý tưởng là như vậy thôi.

Pham Hoang viết 16:02 ngày 01/10/2018

Bạn có thể học lại môn xác suất thống kế là làm được ngay, không cần viết app đâu nhé

Jacaré Junior viết 16:08 ngày 01/10/2018

VỚI c thì dùng rand() để gán vào các biến xí gầu…
srand() để lấy seed :v

rogp10 viết 16:06 ngày 01/10/2018

Không hẳn vậy. Khi số xí ngầu là chẵn thì dư ra số trung vị.

Khi dùng true RNG để seed thì quy luật phải rất phức tạp không dùng rand() kiểu a*x + b hay a >> x && b << x được, vì đảo ngược lại là chuyện dễ dàng.

Jacaré Junior viết 16:07 ngày 01/10/2018

HÀm random mà không seed nó ra y chang nhau chứ bạn.

Dark.Hades viết 16:05 ngày 01/10/2018

Tuỳ ngôn ngữ thôi, ở mức của C/C++ thì phải seed. Còn các ngôn ngữ khác nó seed trước luôn rồi.
Nếu dùng std::19937 thì nhiều lựa chọn hơn

rogp10 viết 16:10 ngày 01/10/2018

Nếu dùng std::19937 thì nhiều lựa chọn hơn

PCG, A Better Random Number Generator – 16 Apr 15

C++ Seeding Surprises

Seeding in C++ is stranger than you think.

Bài liên quan
0