范围内的随机数

时间:2011-10-27 16:23:01

标签: delphi random numbers range

这是在Delphi中(确切地说是7)。如何在特定范围内生成随机数?与Python中的random.randint(1,6)类似。我正在尝试模拟掷骰子。另一种选择是以某种方式排除0。

目前我有:

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

3 个答案:

答案 0 :(得分:22)

您可以使用

RandomRange(1, 7)

将返回集合{1,2,3,4,5,6}中的随机整数。

uses Math

[顺便说一下,'以某种方式'排除零是微不足道的。只需Random(6) + 1。]

答案 1 :(得分:2)

此外,可以从浮点范围[a,b]生成一个值,排除b:

r := random;
x := (b-a)*r + a;

第一行从[0; 1)间隔;第二个给出[a,b)的值。

如果你想在区间内获得N个随机值[a; b](例如,来自区间[1; 2]的5个随机值:{1,1.25,1.5,1.75,2})使用以下内容:

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

答案 2 :(得分:1)

到您可以使用的特定值

randomize;
ran:=random(6)+1;

该值将在1到6之间随机化