1

如何在 mikroC 中实现 rand() C++ 函数?

我尝试了 rand() 但不起作用......我不知道如何解决这个问题

4

1 回答 1

1

如果你的 C 实现符合 C89,它应该包括一个工作rand()——也许你忘了包括<stdlib.h>

rand如果没有,只要您不需要非常高质量的生成数字,那么编写自己的数字就很简单,对于俄罗斯方块的目的,您不应该这样做。这个微小的实现被 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()

于 2013-03-05T09:09:16.303 回答