2011-10-27 23 views
8

これはデルファイ(正確には7)です。特定の範囲内で乱数を生成するにはどうすればよいですか? Pythonのrandom.randint(1,6)に似ています。私はローリングダイスをシミュレートしようとしています。他のオプションは何とか0範囲内の乱数

を除外するために、現在、私が持っているされています

Randomize; 
Roll := Random(7); 
Label3.Caption := IntToStr(Roll); 
+5

ゼロを除外するのは簡単です。ちょうど 'ランダム(6)+ 1'をしてください。 –

答えて

22

あなたが集合{1、2、3からランダムな整数を返します

RandomRange(1, 7) 

を使用することができ、 4,5,6}。

uses Math

[ところで、それは何らかの形で「ゼロを除外することは簡単です。 。ちょうどRandom(6) + 1を行う]

+0

ありがとうございますが、6が含まれるようにRandomRange(1,7)にする必要があります。 – Aaron

+0

@アーロン:はい、数分前に変更しました! –

2

また、[a、b)は、Bをexludingフロート範囲から値を生成することができる:

​​

最初の行は、[0の値を生成します。 1)間隔; 2番目の値は[a、b]から値を与えます。

間隔[a; N]内でN個のランダムな値を取得する場合は、 B](例えば、5つの乱数区間[1〜2]:{1、1.25、1.5、1.75、2})は以下を使用:

r := RandomRange(0, N-1); 
x := a + r*(b-a)/(N-1); 
+0

'RandomRange(0、N)'にする必要があります。 –

1

もし

を使用することができる特定の値に
randomize; 
ran:=random(6)+1; 

この値は1から6の間でランダム化されます。

関連する問題