为了账号安全,请及时绑定邮箱和手机立即绑定

我需要获取 (-1,1) 的随机数,现在用的方法是:

我需要获取 (-1,1) 的随机数,现在用的方法是:

iOS
幕布斯6054654 2023-04-25 19:15:25
(round((arc4random() % 2)))-((round((arc4random() % 2))) == 0)感觉方法太长了,求一个简化的方案。
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

你是要生成(-1,1)之间的任意浮点数还是要生成{-1,0,1}这三个整数?

如果是要取整数,arc4random()返回的就是整数,为什么要round成浮点数再做运算?可以直接:

int r = arc4random() % 3 - 1;

如果是要取(-1, 1)之间的浮点数,就是:

#define ARC4RAND_MAX 0x100000000double r = (double)arc4random() / ARC4RAND_MAX * 2.0f - 1.0f;


查看完整回答
反对 回复 2023-04-28
?
HUH函数

TA贡献1836条经验 获得超4个赞

不懂objective-c,不过目测你的方法并不随机,得到0的概率是50%,1和-1的概率分别是25%。
感觉可以用(round(arc4random() % 3)) - 1

查看完整回答
反对 回复 2023-04-28
  • 2 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信