我可以使用什么算法将醉酒者变成相关的RNG?

时间:2014-04-30 00:41:49

标签: ios random viewcontroller

我是新手程序员(我说这个的唯一原因是因为我还没有完全熟悉所有术语)而且我试图在墙壁之前制作墙壁它。

之前,我已经在这里发布了一个关于它的问题

Randomly generated tunnel walls that don't jump around from one to the next

有点得到了答案。我主要寻找的是使用的for循环(我认为)。问题是我不知道如何正确实施它而不会出错。

我的问题最终成为"我无法弄清楚如何加入。这就是它。我总共拥有41面墙,墙壁被命名为Left1和Right1。我有类似的东西

CGFloat Left1 = 14; for( int i = 0; i < 41; i++ ){ 
CGFloat offset = (CGFloat)arc4random_uniform(2*100) - 100; 
Left1 += offset; 
Right1 = Left1 + 100;

但它告诉我作为黄色文本,本地声明&#34; Left1&#34;隐藏实例变量,然后在红色文本中显示&#34;分配给&#39; UIImageView * __ strong&#39;来自不兼容的类型&#39;浮动&#39;我不确定如何解决这个问题&#34;

而且我不确定如何解决它。我意识到(我认为)arc4random和arc4random_uniform几乎是相同的东西,据我所知,有轻微的差别,但不是我想要的差异。

正如我之前所说,我非常新手所以任何一个例子都会有所帮助,特别是对于我试图使用的变量。谢谢。

1 个答案:

答案 0 :(得分:0)

你想要一个&#34;哈希&#34;功能,最好是加密&#34;一,因为它们往往质量明显更高 - 以牺牲额外的CPU资源为代价。但在现代硬件上,额外的CPU功率通常不是问题。

基本思路是你可以向函数提供任何数据,它会吐出一个完全随机的结果,但如果你提供相同的输入,结果总是相同。

请在此处阅读:

常用的数百种不同的算法,最好取决于你需要的算法。

我个人推荐sha256。快速搜索&#34; sha256 ios&#34;这里的堆栈溢出将告诉你如何使用CommonCrypto库制作一个。要点是你应该创建一个包含每个偏移量的NSStringNSData对象,然后通过sha256运行整个事物。结果将是一个完全随机的256位数。

如果256位太多,只需将其切断即可。例如,您可以只获取该数字的前16位,并且您将拥有一个完全随机的16位数字。