如何获得帕斯卡的随机数?
我想从一个范围内获得一个以帕斯卡为单位的随机数。基本上是这样的:
r = random(100,200);
上面的代码将有一个 100 到 200 之间的随机数。
有什么想法吗?
内置的 pascal 函数只允许您获取 0 到您的范围之间的数字,而我需要指定要返回的最小数字
I want to get a random number in pascal from between a range. Basically something like this:
r = random(100,200);
The above code would then have a random number between 100 and 200.
Any ideas?
The built in pascal function only lets you get a number from between 0-your range, while i need to specify the minimum number to return
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
只需获取一个具有正确范围的随机数(即 100 到 200 的范围为 100),然后向其添加起始值
因此:
random(100) + 100
对于您的示例Just get a random number with the correct range (ie 100 to 200 would be range 100) then add the starting value to it
So:
random(100) + 100
for your example正如已经指出的,您应该使用
但是,为了获得更好质量的随机数,您应该
在应用程序启动时调用一次来初始化随机数生成器。
As already pointed out, you should use
However, to get better quality random numbers, you should call
once, on start of your application, to initialize the random number generator.
难道你不能只声明一个起始变量和一个结束变量并随机传递它们吗?例如
?
这里有一个使用 for 循环设置起始值和结束值的好例子: http://www.freepascal.org/docs-html/rtl/system/random.html
Couldn't you just declare a starting variable and an end variable and pass random those? e.g.
?
There's a good example here of using a for loop to set starting and end values : http://www.freepascal.org/docs-html/rtl/system/random.html
使用 RandomRange 或 RandomFrom:
RandomFrom
从数组 AValues 中返回一个随机元素。返回值的类型与数组元素的类型相同。Use RandomRange or RandomFrom:
RandomFrom
returns a random element from the array AValues. The return value has the same type as the type of the array elements.首先,我建议您在程序开始时使用 Randomize (它改变了选择数字的算法)。
要获得两个数字之间的随机数,您需要这样:
我不记得随机的最大值,因此您可以更改它(它不会更改任何内容)。
通过使用“mod”,您可以从随机和最大划分中获得模块。需要+1,因为你永远不会得到= max 的数字,只能得到= max-1 的数字,所以你需要写+1。
祝你好运!
first of all, i recommend you to use Randomize at the beginning of the program (it changes the algorithm of selecting the number).
To get a random number between some two numbers you need this:
I don't remember the maximum value for random, so you can change it (it don't changes anything).
By using 'mod' you get module from division Random and max. +1 is needed, because you never get the number that = max, only the number that =max-1, so you need to write +1.
Good luck!
你可以让它像
整数:=随机(100);
它给出了 100 个随机数。
那么当你显示它或使用它时,只需将 101 添加到该整数,使其介于 100 和 200 之间
You can make it like
Int:=Random(100);
it give's 100 random numbers.
then when you display it or use it just add 101 to that integer so its between 100 and 200