所以我在这个代码中的目标是随机滚动两个骰子,因为我们都知道你的常规骰子只有6个边,所以我导入了Foundation来访问arc4random_uniform(UInt32).我试图使用(1..7)的范围来避免随机获得0,但是返回了一个我不太喜欢的错误.我试着这样做:
dice1 = arc4random_uniform(UInt32(1..7))
Run Code Online (Sandbox Code Playgroud)
然而那又归来了
找不到接受提供的参数的'init'的重载
我希望这是足够的信息,你在那里惊人的debs帮助我:)
请注意我只是在操场上练习快速练习.我不必学习如何做到这一点; 在我开始构建实际的应用程序之前,我只是在修补:D
//imports random number function
import Foundation
//creates data storage for dice roll
var dice1: UInt32 = 0
var dice2: UInt32 = 0
//counter variable
var i = 0
//how many times snake eyes happens
var snakeeyes = 0
//how many times a double is rolled
var `double` = 0
//rolls dice 100 times
while i < 100{
//from here
//sets dice roll
Run Code Online (Sandbox Code Playgroud)
这将返回错误"Range $ T3"无法转换为UInt32
Run Code Online (Sandbox Code Playgroud)dice1 = arc4random_uniform(1..7) dice2 = arc4random_uniform(1..7) …
我需要生成一个随机数.
看起来arc4random
功能不再存在以及arc4random_uniform
功能.
我的选择是arc4random_stir()
, arc4random_buf(UnsafeMutablePointer<Void>, Int)
和 arc4random_addrandom(UnsafeMutablePointer<UInt8>, Int32)
.
我找不到关于函数的任何文档,并且头文件中没有注释给出提示.
我正在尝试生成一个介于0和1之间的随机数.我一直在阅读arc4random()
,但是没有关于从中获取浮点数的任何信息.我该怎么做呢?
在Swift中,我试图获得0到1之间的随机浮点数,但我似乎无法使类型转换工作.
func randomCGFloat() -> CGFloat {
return CGFloat(arc4random()) / UINT32_MAX
}
Run Code Online (Sandbox Code Playgroud)
我得到'CGFloat'不能转换为'UInt8'错误
运行Xcode 6.
我有两个文本框,用户可以输入2个正整数(使用Objective-C).目标是在两个数字之间返回一个随机值.
我使用过"man arc4random",但仍然无法完全绕过它.我想出了一些代码,但它有问题.
float lowerBound = lowerBoundNumber.text.floatValue;
float upperBound = upperBoundNumber.text.floatValue;
float rndValue;
//if lower bound is lowerbound < higherbound else switch the two around before randomizing.
if(lowerBound < upperBound)
{
rndValue = (((float)arc4random()/0x100000000)*((upperBound-lowerBound)+lowerBound));
}
else
{
rndValue = (((float)arc4random()/0x100000000)*((lowerBound-upperBound)+upperBound));
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我输入值0和3,它似乎工作得很好.但是,如果我使用数字10和15,我仍然可以为"rndValue"获得低至1.0000000或2.000000的值.
我是否需要详细说明我的算法,还是需要更改使用arc4random的方式?
所以我看过关于Obj中随机和arc4random之间差异的旧帖子.C,我已经在网上看到了这个答案,但我并没有真正理解答案,所以我希望有人可以用更容易理解的方式解释它.
使用random
和arc4random
生成随机数有什么区别?
使用arc4random()时可以设置一系列数字吗?例如仅50-100.
从我可以收集到的内容arc4random()
产生的数据要好得多rand()
,但是我没有看到种植它的方法,我想只是喜欢使用srand()
.有办法吗?
我正在使用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)
}
}
Run Code Online (Sandbox Code Playgroud)
我期待相对均匀的随机性.我得到的有明确的模式:
放大左下角:
(我已经在每32行和每列上将颜色更改为黑色,以查看图案是否排列为2的任何幂).
是什么导致这些模式?我试过了:
rand()
.arc4stir()
在每个arc4random_uniform调用之前添加关于下一步的想法?
arc4random ×10
random ×6
ios ×4
swift ×4
objective-c ×3
c ×1
cgfloat ×1
iphone ×1
macos ×1
range ×1