C /生成1到4之间的随机数,使用arc4random()留下3个?

0 c iphone random ipad ios

我有

int y = (arc4random()%4)+1;
Run Code Online (Sandbox Code Playgroud)

因此它会生成1到4的随机数.

我想问一下是否有办法让3号出局,所以只有数字1,2和4有机会生成.

谢谢!

Jus*_*Sid 9

int allowdNumbers[3] = {1, 2, 4}
int index = arc4random()%3;

int number = allowdNumbers[index];
Run Code Online (Sandbox Code Playgroud)


小智 9

您始终可以从0-2(arc4random() % 3)中随机生成并使用该数字作为幂:

2^0 = 1
2^1 = 2
2^2 = 4
Run Code Online (Sandbox Code Playgroud)

那里你从1-4没有3你随机.在C:

int y = 1 << (arc4random() % 3);
Run Code Online (Sandbox Code Playgroud)