生成iPhone随机值(generating random values in iPhone)

2019-07-18 06:54发布

我已经使用兰特()。 但它给我重新启动应用程序即使一个特定的值。

我已经实现了我的应用程序如下。

- (void)viewDidLoad {
[super viewDidLoad];
int x,y;

x=random() % 480; y=random() % 300;

lblT.center=CGPointMake(x,y); // my label lblT
}

试着在你的应用程序中实现,并启动应用程序。 重新启动应用程序后,你会发现,标签将出现在特定的值。

Answer 1:

arc4random()是一个内置的功能,不需要播种(等因此不会产生可以通过使用种子来产生可预测的序列),和它方便地返回一个整数。 我从来没有使用其他任何东西。



Answer 2:

使用随机之前以下行()

srand(time(NULL));



Answer 3:

在软件随机数生成器将实际上给值的伪随机序列。

除非你从一个真正的随机事件的值种子随机数生成器,你总是会得到相同的序列每次使用该软件的时间。

我不知道你的软件,但它并不像你播种随机数发生器, Gcamp可能是正确的轨道上。



Answer 4:

由于使用的是随机的(),而不是兰特(),你应该种子,随机数生成与该位的代码...

srandomdev();



Answer 5:

我会做这样的:

景观:

- (void)viewDidLoad {
[super viewDidLoad];


int x = arc4random()%480;
int y = arc4random()%320;

lblT.center=CGPointMake(x,y);
}

没有风景:

 - (void)viewDidLoad {
    [super viewDidLoad];


    int x = arc4random()%320;
    int y = arc4random()%480;

    lblT.center=CGPointMake(x,y);
    }


Answer 6:

使用此代码,只为整数随机值

#define random(min,max) ((arc4random() % (max-min+1)) + min)

测试

for (int i = 0; i < 500; i++) {
    NSLog(@"rand is %d", random(-100,100));
}


文章来源: generating random values in iPhone