2011-10-27 147 views
8

這是在德爾福(準確地說是7)。如何在特定範圍內生成隨機數字?類似於Python中的random.randint(1,6)。我試圖模擬滾動的骰子。另一種選擇是莫名其妙地排除0在一個範圍內的隨機數

目前我有:

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

「不知何故」排除零是微不足道的。只要做'隨機(6)+ 1'。 –

回答

22

您可以使用

RandomRange(1, 7) 

將從集合{1,2​​,3返回一個隨機整數, 4,5,6}。

uses Math

[順便說一句,它是微不足道的 '以某種方式' 排除零。只是做Random(6) + 1]

+0

謝謝,但它必須是RandomRange(1,7),以便包含6。 – Aaron

+0

@Aaron:是的,幾分鐘前我改變了! –

2

而且,有可能產生從浮法範圍[A,B),exluding b提取一個值:

​​

第一行產生從[0的值; 1)間隔;第二個從[a,b)給出一個值。

如果您想要在區間[a; B](例如,從區間[1 5個隨機值; 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之間