2016-09-28 6 views
1

I Rand5と呼ばれる関数を用意しています。乱数は1..5からです。
私はRand5を3回連続して呼び出すので、1〜5の3つの数字があります。 1.
(1,1,5)から
(1,1,1)マップ:例えば:など(1,1,1)(1,2,5)rand5を範囲内の番号にマップする

あり125の可能なオプションがあり、私は1だから、

125の間の数字に125のオプションをマップしたいですあなたは擬似コードで私を助けることができる5.
(1,2,2)マップ

125にマップ
(5,5,5) 7ににマップされます。

ありがとうございます!あなたは3つの数値(a,b,c)を持っていることを、あなたはこの式を使用することができます考える

+0

* real *マッピングがないことに注意してください。あなたはどんなマッピングをしたいこともできます。 –

答えて

5

:いくつかのランダムな機能がそうであるように

result = (a-1) * 5^2 + (b-1) * 5 + c 
     = 25*a + 5*b + c - 30 

がこれは[1,..,5]Rand5戻っ番号、ない[0,..4]に基づいています...

背景の説明を少し追加するために、この方程式は3つの乱数を基数5の3桁の数字として扱います:

abc(base 5) = (5^2 * a) + (5 * b) + c 
+0

ありがとう! @ shapiro yaacov rand5が[0..4]を返す場合、方程式をどのように変更するのですか? – maz

+0

'result =(a)* 5^2 +(b)* 5 +(c + 1)' –

関連する問題