相关疑难解决方法(0)

为什么人们说使用随机数发生器时存在模偏差?

我已经看到这个问题了很多但从未见过真正的具体答案.所以我将在这里发布一个,希望能帮助人们理解为什么在使用随机数生成器时会出现"模数偏差",就像rand()在C++中一样.

c++ language-agnostic random modulo

270
推荐指数
6
解决办法
4万
查看次数

使用arc4random()时如何选择值范围

使用arc4random()时可以设置一系列数字吗?例如仅50-100.

objective-c arc4random ios

41
推荐指数
3
解决办法
5万
查看次数

这是在iPhone上生成随机字符串的好方法吗?

这是我提出的代码:

NSString *randomString = @"";
for (int x=0;x<NUMBER_OF_CHARS;x++) {
  randomString = [randomString stringByAppendingFormat:@"%c", (char)(65 + (arc4random() % 25))];
}
return randomString;
Run Code Online (Sandbox Code Playgroud)

编辑:

回答评论:

1)我最关心的是代码的简洁性.

2)我也想知道这是否是对猜测的字符串的安全,和/或对碰撞的证据,如果NUMBER_OF_CHARS是高数(说40) - 不是为了这个申请,但在其他情况下.

3)另外,如果我想在某天制作大量的琴弦,有更快的方法吗?这似乎很慢,因为它每次都通过循环创建一个对象.

security objective-c ios

7
推荐指数
1
解决办法
5391
查看次数

我担心arc4random背叛了我

我的代码是从0到1的随机数字.我看到数字1的出现次数远远超过数字0然后我认为在统计上是可能的.

这是我的代码:

int shipNumber = arc4random() % 2;
Run Code Online (Sandbox Code Playgroud)

该代码应该有效吗?我只是疯了吗?

iphone objective-c cocos2d-iphone arc4random

6
推荐指数
1
解决办法
951
查看次数

在iOS中创建随机128位AES加密密钥

我想在ios中创建随机AES加密密钥(128位).我搜索过但我找不到一个好的答案.请给我一些建议.提前致谢.

更新:

我用过BBAES lib.我使用下面的代码生成加密密钥,但是当我从NSData转换为NSString时,它显示为NULL

  -(NSData*)randomDataWithLength{
    NSData* salt = [BBAES randomDataWithLength:BBAESSaltDefaultLength];
    NSData *key = [BBAES keyBySaltingPassword:@"password" salt:salt keySize:BBAESKeySize128 numberOfIterations:BBAESPBKDF2DefaultIterationsCount];
    NSLog(@"Data ASE Key %@",key);
    NSString *aString  = [[NSString alloc] initWithData:key encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch aes objective-c ios

4
推荐指数
3
解决办法
7394
查看次数

生成任意18位数的随机NSInteger

我试过这个:

NSInteger numberFinal = 100000000000000000 + ((float)arc4random() / UINT32_MAX) * (999999999999999999 - 100000000000000000);
Run Code Online (Sandbox Code Playgroud)

但它返回零...我不想指定范围,但只想要任何18位数的数字......

random objective-c ios

2
推荐指数
1
解决办法
682
查看次数