如何在mikroC中实现rand()C ++函数?
我试过rand()但是没有用......我不知道如何解决这个问题
答案 0 :(得分:1)
如果你的C实现符合C89,它应该包含一个有效的rand()
- 也许你忘了包含<stdlib.h>
?
如果没有,只要你不需要非常高质量的生成数字就可以编写自己的rand
,这对于TETRIS来说是不应该的。 POSIX将这一微小的实现提升为需要在架构中重复相同的伪随机数序列的程序的选项:
static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int myrand(void) {
next = next * 1103515245 + 12345;
return((unsigned)(next/65536) % 32768);
}
void mysrand(unsigned seed) {
next = seed;
}
它不会给你很好的伪随机性,但它也不会比rand()
的许多现实实现更糟糕。