ios – arc4random(mac os x)怎么随机? (或者我做错了什么?)

前端之家收集整理的这篇文章主要介绍了ios – arc4random(mac os x)怎么随机? (或者我做错了什么?)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在玩 swift / mac_os_x的优化游戏生活实现.第一步:随机化一个大网格的细胞(50%活着).

码:

for(var i=0;i<768;i++){
  for(var j=0;j<768;j++){
    let r = Int(arc4random_uniform(100))
    let alive = (aliveOdds > r)
    self.setState(alive,cell: Cell(tup:(i,j)),cells: aliveCells)
  }
}

我期望一个相对均匀的随机性.我得到了明确的模式:

放大左下角的一点:

(我已经将颜色改为黑色,每32行和列,以查看图案是否排列有任何权力的2).

任何线索是什么导致的模式?我试过了:

>用rand()替换arc4random.
>在每个arc4random_uniform调用之前添加arc4stir()
>移动显示(确保图案在数据中,而不是显示毛刺)

下一步的想法?

解决方法

>在任何可显示的集合(16 *(2 ** 31)-1)上,您不能击中周期或许多常规的不均匀的arc4random集群.

这些绝对是破坏/未初始化内存的迹象.例如,您正在初始化768×768字段,但您显示1024xsomething字段.

>尝试用100替换Int(arc4random_uniform(100))来查看.

猜你在找的iOS相关文章