如何获得帕斯卡的随机数?

发布于 2024-10-17 02:11:03 字数 194 浏览 2 评论 0原文

我想从一个范围内获得一个以帕斯卡为单位的随机数。基本上是这样的:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

随遇而安 2024-10-24 02:11:03

只需获取一个具有正确范围的随机数(即 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

止于盛夏 2024-10-24 02:11:03

正如已经指出的,您应该使用

myrandomnumber := random(span) + basenumber;

但是,为了获得更好质量的随机数,您应该

randomize();

在应用程序启动时调用一次来初始化随机数生成器。

As already pointed out, you should use

myrandomnumber := random(span) + basenumber;

However, to get better quality random numbers, you should call

randomize();

once, on start of your application, to initialize the random number generator.

俯瞰星空 2024-10-24 02:11:03

难道你不能只声明一个起始变量和一个结束变量并随机传递它们吗?例如

var
varMyRandomNumber, x, y := extended;

begin

x := 100;
y := 200;

varMyRandomNumber := random(x,y);
ShowMessage(IntToStr(varMyRandomNumber));
end;

这里有一个使用 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.

var
varMyRandomNumber, x, y := extended;

begin

x := 100;
y := 200;

varMyRandomNumber := random(x,y);
ShowMessage(IntToStr(varMyRandomNumber));
end;

?

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

明天过后 2024-10-24 02:11:03

使用 RandomRangeRandomFrom

function RandomRange(const aFrom: Integer; const aTo: Integer): Integer;

RandomFrom 从数组 AValues 中返回一个随机元素。返回值的类型与数组元素的类型相同。

Use RandomRange or RandomFrom:

function RandomRange(const aFrom: Integer; const aTo: Integer): Integer;

RandomFrom returns a random element from the array AValues. The return value has the same type as the type of the array elements.

无人问我粥可暖 2024-10-24 02:11:03

首先,我建议您在程序开始时使用 Randomize (它改变了选择数字的算法)。

要获得两个数字之间的随机数,您需要这样:

Result:=Min+random(10000)mod max + 1;

我不记得随机的最大值,因此您可以更改它(它不会更改任何内容)。

通过使用“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:

Result:=Min+random(10000)mod max + 1;

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!

飘然心甜 2024-10-24 02:11:03

你可以让它像
整数:=随机(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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文