因此,在我的脑海中,我可以想到一些解决方案(例如,专注于获取随机奇数):
int n;
while (n == 0 || n % 2 == 0) {
n = (arc4random() % 100);
}
eww..对吗?一点效率都没有。。
int n = arc4random() % 100);
if (n % 2 == 0) n += 1;
但我不喜欢它总是会增加数字,如果它不是奇数的话。也许这不重要?另一种方法可能是随机化:
int n = arc4random() % 100);
if (n % 2 == 0) {
if (arc4random() % 2 == 0) {
n += 1;
else {
n -= 1;
}
}
但这对我来说感觉有点糟糕。所以我想知道是否有更好的方法来做这种事情?