首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何生成已经在Pascal中定义的数字的随机组合?

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

Stack Overflow用户
提问于 2015-01-21 23:07:18
回答 3查看 194关注 0票数 0

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

罗西

EN

回答 3

Stack Overflow用户

发布于 2015-01-22 00:40:09

代码语言:javascript
运行
复制
   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,并在digits数组中查找它,然后将其写入控制台输出。它会随机抽取50个数字,然后退出。

票数 0
EN

Stack Overflow用户

发布于 2015-01-24 08:45:58

代码语言:javascript
运行
复制
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之间。

票数 0
EN

Stack Overflow用户

发布于 2015-01-26 16:02:35

如果您希望输出中每个数字只包含一次,则需要将已经选择的数字存储在一个集合中,以防止它们再次被选择。

代码语言:javascript
运行
复制
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.  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28070418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档