这是在Delphi中(确切地说是7)。如何在特定范围内生成随机数?与Python中的random.randint(1,6)
类似。我正在尝试模拟掷骰子。另一种选择是以某种方式排除0。
目前我有:
Randomize;
Roll := Random(7);
Label3.Caption := IntToStr(Roll);
答案 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之间随机化