...1到6之间产生随机数并存入数组中,数组一共有12个数据,12个数据里面...
发布网友
发布时间:2024-08-17 16:12
我来回答
共3个回答
热心网友
时间:2024-08-25 23:13
大致算法如下:
定义一个数组都初始化为0用来储存1~6的使用的次数,
如calc[7] (a[0]不用)
calc[1]~calc[6]分别储存1~6的使用的次数
每当产生一个随机数放入temp,若calc[temp]>2则重新产生直到calc[temp]<=2才把pNumber=temp
然后calc[temp]++
具体程序由于我不会NSMutableArray我把它放在num数组中
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
void main()
{
srand((unsigned)time(NULL));
int temp,calc[7]={0},num[13];
int i;
for(i=1;i<=12;i++)
{
while(1)
{
temp=rand()%6+1;
if(calc[temp]<2)
{
num[i]=temp;
calc[temp]++;
break;
}
}
}
for(i=1;i<=12;i++)
cout<<num[i]<<endl;
}
热心网友
时间:2024-08-25 23:19
int m,p,i,j;
for (i=1; i<=12; i++) {
while(1){
p=(random(5))+1;
for(j=0,j<[numble count],j++)
if(p==[numble objectAtIndex : j ]){
m++;
}
if(m<=2)
break;
}
int pNumber = p;
[image addObject:pNumber];
NSMutableArray应该不能直接添加int型数据吧..
出现几次同样的重复数字很正常吧..因为只有1到6的随机而已...
热心网友
时间:2024-08-25 23:17
那你在存储之前做个判断啊,是否该数已经出现2次以上?如果是,则放弃该数,重新取随机数,直到符合要求为止