开发者

How to get a random number in pascal?

开发者 https://www.devze.com 2023-02-10 08:51 出处:网络
I want to get a random number in pascal from between a range. Basically something like this: r = ran开发者_如何学JAVAdom(100,200);

I want to get a random number in pascal from between a range. Basically something like this:

r = ran开发者_如何学JAVAdom(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


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

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.


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


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.


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!


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

0

精彩评论

暂无评论...
验证码 换一张
取 消