如何让出现的数字比上一个数字小?(10分)

  • 主题发起人 主题发起人 tiger_520
  • 开始时间 开始时间
T

tiger_520

Unregistered / Unconfirmed
GUEST, unregistred user!
随机出0~39中的一个数。假如第一个数随机为34,那么第二个数随机出的只能比34小,第三
个数随机出也要比第二个小,第四个比第三个小。
麻烦大家帮忙,看看这代码该如何编写。
 
x:=39
for i:=1 to 4 do
begin
randomize;
xx:=random(x);
x:=xx;
end;
 
首先,我认为,你这样的算法不太好,不如换一个思路,比如,你先在0-39内产生四个
不同的随机数,存在一个地方,比如数组里,然后排序,再从数组里从大到小给出你的数
字就可以了!
 
我认为可以这样?
先0--39之间求得一个随机数x1,然后判断是否大于0,若否,则再在0--x1之间产生一个新的随机数,
然后又把它赋给x1,这样就可以了,程序你自已实现吧!
 
const maxK=39;
function getNumber(k:word):word
begin
do
result:=Random(maxK);
until result < K ;
end;
//调用
var x:array[0..3] of word;
begin
randomize;
do
x[0]:=Random(maxK);
until x[0] > 4;//取第一位数,不能小于4
for i:=1 to 3 do begin
x:=getNumber(x[i-1]);
end;
 
接受答案了.
 
后退
顶部