如何生成已在Pascal中定义的数字的随机组合?

时间:2015-01-21 15:07:18

标签: random pascal

我想问一下是否有人可以解决以下问题:我应该如何使用Pascal中的随机函数来生成已经初始化的数字的随机组合(我的意思是我已经给出了值四个变量,我希望通过随机函数创建这四个数字的随机组合)。 提前谢谢!

罗西

3 个答案:

答案 0 :(得分:0)

   var digits : array[0..3] of integer = (10,20,30,40);
       i      : integer;

   begin
      Randomize;  // initialize the random generator. Only once per program
      for i:=0 to 50 do
        Writeln(digits[random(4)]);   
   end.

Writeln行绘制一个数字0< = x< 4 so 0..3,并在数字数组中查找,然后将其写入控制台输出。它绘制了50个随机数,然后退出。

答案 1 :(得分:0)

var
randomnumber,i:integer;
number:array[0..3] of integer; 

begin
    randomize;
    for i:= 0 to 3 do
    begin
        readln(number[i]);
    end;

    randomnumber:= (number[random(4)] * 1000) + (number[random(4)] * 100) + (number[random(4)] * 10) + (number[random(4)] * 1);
    writeln(randomnumber);

end.

我希望这可以提供帮助。 但是给定的初始值应该在0到9之间。

答案 2 :(得分:0)

如果您希望输出仅包含每个数字一次,那么您需要存储已在一组中选择的数字以防止再次选择它们。

const
 digits: array [0..3] of integer = (1, 3, 5, 7); 

var
 i, n, total: integer;
 stored: set of integer;

begin
 Randomize;  
 stored:= [];
 total:= 0;
 for i:= 1 to 4 do
  begin
   repeat
    n:= random (4);
   until not (n in stored);
   stored:= stored + [n];
   total:= total * 10 + digits[n];
  end;
 writeln (total)
end.