What is the best way to generate random numbers using Objective-C on iOS?
If I use (int)((double) rand() / ((double)(RAND_MAX) + (double) 1) * 5.0)
to generate a number from 0 to 4, every time I start the program on the iPhone it generates the same numbers to start off with.
我该如何在iOS上生成随机数?
原标题:
最佳回答
这里有一个非常相似的问题StackOverFlow上的问题。这里是其中一个更好的解决方案(无需种子):
int r = arc4random() % 5;
问题回答
我使用
#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__, __MAX__) ((__MIN__) + random() % ((__MAX__+1) - (__MIN__)))
因此,您可以提供最小值和最大值。
你应该使用当前时间作为随机数生成器的种子。
srand(time(0));
你需要多随机?如果你想要足够用于加密的随机数,那么使用SecRandomCopyBytes()。
在程序开头调用srand()
函数,它将重新生成随机数生成器的种子。
用于生成随机数的简单函数:
int r = arc4random() % 42; // generate number up to 42 (limit)
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding