导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2003/4/22 10:16:35
标题:
加入我的收藏
楼主:
如何同时产生4个不重复的随机数(使用random函数)
----------------------------------------------
能够想到,就一定会实现!
作者:
2003/4/22 10:32:23
1楼:
var Rads:array[0..3] of real;//四个随机数 k:integer; begin Randomize; for k:=0 to 3 do Rads[k]:=Random; end;
----------------------------------------------
-
作者:
2003/4/22 12:25:48
2楼:
毛毛: 你说的方法仍然会产生重复的数字
----------------------------------------------
能够想到,就一定会实现!
作者:
2003/4/22 19:53:36
3楼:
在范围限制吗? 我做过:在一定范围内产生不同的随机数。方法虽笨,可很实用。
----------------------------------------------
骆驼
作者:
2003/4/22 21:19:57
4楼:
骆驼: 能否把你的代码发给我,谢谢! gons@163.com
----------------------------------------------
能够想到,就一定会实现!
作者:
2003/4/23 1:28:31
5楼:
设一个数组,如a[0]=0..a[100】=100,j;=0;随机产生下标值NUM, NUM:=ROMDOM(100-j); 然后将a[i]与a[100-j]交换. j:=j+1; 重复以上过程。顺便说一句, 这网站有点华而不实,建议访问www.delphiboy.com
----------------------------------------------
delphi,我心中的女神
作者:
2003/4/23 12:30:44
6楼:
procedure TForm1.Button1Click(Sender: TObject); Var i,j,k,m: byte; n: shortint; arr: array[0..30] of byte; begin Randomize; m := 31; //这是范围,产生的是 0-30 以内的随机数 for i := 0 to 30 do arr[i] := 0; for i := t to 3 do //产生三个不同的随机数 begin k := Random(m); j := 0; n := -1; while j <= k do begin inc(n); if arr[n] <= 0 then inc(j); end; arr[n] := 1; dec(m); end; for i := 0 to 30 do // if arr[i] > 0 then 记下 i; end;
----------------------------------------------
骆驼
作者:
2003/4/23 15:48:50
7楼:
对6楼说的不是很明白
----------------------------------------------
-
作者:
2003/4/23 20:56:46
8楼:
我用 Delphi 5 写了一个小游戏:七彩连珠 游戏规则是:每次在 9X9 的棋盘上产生三个随机彩球(共七彩),通过鼠标点击彩球后再点击空位,可移动彩球(需有连通的路径--当然是最短路径),若 5 个以上同色彩球连成一线(横、竖、斜向均可),则它们消失并加分。这个游戏有不少人写过,我写它只是为了学习 Delphi 编程,作为入门的乐趣。 游戏中,对于每次产生的三个随机彩球,还需产生相应的随机球位,当然,三球的位置不能相同,我就采用了上面的方法(见6楼),(产生球位的)思路是: 1、数出棋盘中的空位数; 2、若空位数 > 0,则产生一个在 0-(空位数-1) 之间的随机数 k; 3、先设置一个变量 j,用循环方法,在棋盘内点数(变量 n)。每点数一格,n 增 1,而点数到空位时,j 增 1,当然,点数到 j = k 为止;(这一步是关键) 4、在棋盘的 n 位置放上标记,表示这里已安排了彩球,以便为下一步数空位时,空位数比本次少 1; 5、回到 步骤1 ;(需做三次嘛) 6、清除在 步骤4 中做的标记。 注:此算法没有无用功! 有要游戏或源码的朋友,可与我联系,不过源码得收一点点“银子”啰!
----------------------------------------------
骆驼