老师出的题目,看不懂——
要求:
1。从1-50[定义为N,全局赋值]中随机选取10[定义为M,全局赋值]个数字,把取得的10个随机数存入一个数组。2。从10[定义为I,全局赋值]次的1。结果得到的数组中统计1-50之间每个数字出现的次数,将所有数字的概率列出来。3。对数组进行优化,要求只要是1。中的上一次结果出现的数字在本次结果中均不出现。4。对数组优化,要求是如果在1。中的上一次结果出现3个以上数字相连的话则只能从这几个相连数字的两头取值,[如果相连数字是从1-3之间开始则取大于1-3的;同理,反之则取小于47-50的]5555555555,搞不明白了,老师还说在全班41人中只能每3个人的程序相同或者相似,发现多于4个则平时成绩均计做60!!求助阿求助阿!!
要求:
1。从1-50[定义为N,全局赋值]中随机选取10[定义为M,全局赋值]个数字,把取得的10个随机数存入一个数组。2。从10[定义为I,全局赋值]次的1。结果得到的数组中统计1-50之间每个数字出现的次数,将所有数字的概率列出来。3。对数组进行优化,要求只要是1。中的上一次结果出现的数字在本次结果中均不出现。4。对数组优化,要求是如果在1。中的上一次结果出现3个以上数字相连的话则只能从这几个相连数字的两头取值,[如果相连数字是从1-3之间开始则取大于1-3的;同理,反之则取小于47-50的]5555555555,搞不明白了,老师还说在全班41人中只能每3个人的程序相同或者相似,发现多于4个则平时成绩均计做60!!求助阿求助阿!!
N = 50;
M = 10;
I = 10;
var
aN: array[1..N,1..2] of integer;
aI: array[1..I,1..M] of integer;
tmpi, tmpj, temp: integer;
begin
Randomize; //原始数组初始化
for tmpi := 1 to N do
begin
aN[tmpi,1] := tmpi;
aN[tmpi,2] := 0;
end;
//I次循环,每次随机取M个数字
for tmpi := 1 to I do
begin
for tmpj := 1 to M do
begin
temp := Random(N) + 1;
aI[tmpi,tmpj] := aN[temp,1];
aN[temp,2] := aN[temp,2] + 1;
end;
end;
end;其他的你自己参考实现吧!我想说的是,这个问题不太简单。就如第3个问题,本次10个随机数取了出来(可以有重复),下次再随机取10个数字的时候要排除前次那10个随机数(重复的数字算1个数字),而本次随机取的10个数字也可以重复。呵呵,不知道我分析的对不对?楼主有什么意见?