在1到m的整数中取出n个不重复的随机数字?(n<m). 我觉得
jiangjian0427驴子先生教过我:‘用数组啊
第二次是在剩下的数据中用随机函数’ 的方法可以,但是我实在是不会写了!
请高手指教(那个帖子我接帖给分了,所以又开了一帖,不好意思…)
jiangjian0427驴子先生教过我:‘用数组啊
第二次是在剩下的数据中用随机函数’ 的方法可以,但是我实在是不会写了!
请高手指教(那个帖子我接帖给分了,所以又开了一帖,不好意思…)
解决方案 »
- 关于DLL问题
- 100分急问:ADODataSet用delete删除记录以后怎样立刻在DBGrid中体现出来?
- 谁给我发BMP转化成GIF的源码
- *****请问在各位大侠,有关转向游戏开发的问题。*****
- 怎样实现将dbgrideh的某几列合并(就像excel的合并单元格 )
- 中秋快到,广式月饼难吃,但TQRChart又吃不上,心急,散分!!
- 请问高手!
- 关于 TMaskEdit 组件的使用!进者有分!
- 请教
- 帮忙把vb代码转成delphi代码。。。急。。谢谢!!!
- ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Excel 8.0;DATABASE=c:\a.xls' 无法连接Excel2000以上版本。
- 怎么将汉字转换成汉语拼音?
N:integer=100;
M:integer=1000;
var
a:array[0..M-1] of integer;
b:array[0..N-1] of byte;
i,j,temp:integer;
begin
for i := 0 to M-1 do
a[i]:=i;
for i := 0 to n-1 do
begin
temp:=Random(m-i-1);
b[i]:=a[temp];
for j := temp to M-2 do
a[j]:=a[j+1];
end;
end;
b:array[0..N-1] of byte;
报错:Constant expression expected
请高手进一步指教!
len:integer;
i, Index: Integer;
temp:array of integer;begin len:=length(a);
setlength(temp,len); for i:=0 to high(temp) do temp[i]:=i+1;
//如果想要数值从0开始则temp[i];=i;
while Len>0 do
begin
Index:=Random(Len);
a[high(a)+1-Len]:=temp[Index];
temp[Index]:=temp[Len-1];
Len:=len-1;
end
end;book下来的,应该满足你的要求
给分了!
再执行一次程序你会看到1,8,7,3..
还有random之前Randomize一下重新生成种子。就不会一样了
Randomize;
for i := 0 to M-1 do
a[i]:=i;
for i := 0 to n-1 do
begin
temp:=Random(m-i-1);
b[i]:=a[temp];
for j := temp to M-2 do
a[j]:=a[j+1];
end;
qx.Close;
qx.SQL.Clear;
qx.SQL.Add('select * from 选择题');
qx.Open;
qx.First;
i:=1;
while i<=x1 do
begin
randomize;
qx.first;
i=i+1
end
我这样取的记录总是有重复的,所以我希望能取到不重复的随机数呀。这样我在出来5条记录的时候才不会重复。因为这是个出题的程序。
我如何才能实现呢?
我想在while语句下设一个语句,把已经出的题标识一下,可以如何获得要标识qx.MoveBy(Random(qx.recordcount));这条记录呢?
哎呀呀!!愁傻我了!
呵呵::)))
qx.SQL.Clear;
qx.SQL.Add('select * from 选择题');
qx.Open;
qx.First;
i:=1;
while i<=x1 do
begin
randomize;
qx.first;
qx.MoveBy(Random(qx.recordcount));
i=i+1
end
调了一句
呵呵
不好意思呀:)