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
Bài liên quan
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.
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.
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ả.

À 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.
Làm thế thì thế nào cũng có người tìm ra quy luật.
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.
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é
VỚI c thì dùng rand() để gán vào các biến xí gầu…
srand() để lấy seed :v
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.
HÀm random mà không seed nó ra y chang nhau chứ bạn.
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
C++ Seeding Surprises
Seeding in C++ is stranger than you think.