簡體   English   中英

將數組中的一系列數字映射到統一隨機 1 到 100

[英]to map a range of numbers in an array to uniform random 1 to 100

我有 5 個骰子,每個骰子都擲一次:說結果是骰子 [] = { 1, 1, 1, 1, 1 }

這個骰子[]數組是一個函數的輸入說

 int  random (dice) {
   //do some thing with the dice values { 1, 1, 1, 1, 1 } ( as input from user )

   //return a uniform random number between 1 to 100

 }

規則:唯一的隨機源是骰子數組中的值。 我如何將每個值轉換為 1 到 100 之間的數字,以便生成的值幾乎是統一的

請幫忙

您可以將骰子上的數字分別乘以 1、6、6^2、6^3、6^4。 然后將它們相加並取結果的最后兩位數(即,在最后做一個 % 100)。

編輯(感謝 pjs)

最后一步,加 1,這樣你就能得到介於 1 和 100 之間的答案,而不是介於 0 和 99 之間的答案。

像你這樣的聲音正在嘗試的任何地方產生隨機數從1到100,您可以檢查出的C ++ rand()函數是如何工作在這里,或Java的Math.random()函數在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM