【发布时间】:2014-08-27 20:42:09
【问题描述】:
这是我生成 1-99 随机数的代码,但它每次只生成相同的一组数字(15 个数字)。我将这些数字存储在NSArray 中,并正确地在NSLog 中获得输出。没关系,但是每当我调用这个随机方法时,我都想要不同的随机数集,没有重复的数字。任何人都可以帮助我吗?
-(void) randoms
{
myset=[[NSArray alloc]init];
int D[20];
BOOL flag;
for (int i=0; i<15; i++)
{
int randum= random()%100;
flag= true;
int size= (sizeof D);
for (int x=0; x<size; x++)
{
if (randum == D[x])
{
i--;
flag= false;
break;
}
}
if (flag) D[i]=randum;
}
for (int j=0; j<15; j++)
{
myset=[myset arrayByAddingObject:[NSNumber numberWithInt:D[j]]];
}
NSLog(@"first set..%@",myset.description);
}
【问题讨论】:
-
这很烦人。用有很好解释的代码做了一个很好的长答案,这个问题就结束了。我会将其添加到博客中,并在可能的情况下为您提供链接。
-
虽然有一个元素是重复的——生成唯一的随机数,但也有将随机数放在一个集合中的元素,所以我已经提名重新打开
-
@Paulw11 有很多这样的问题在问这个问题。 Take your pick
-
@JeremyP 我同意随机播种是重复的,但不是在范围内创建一组唯一随机数。
标签: ios objective-c random