2013-03-05 51 views
1

如何在mikroC中实现rand()C++函数?mikroc中是否存在rand()函数?

我试过兰特(),但不工作...我不知道如何解决这个

+1

阅读简单实现。你也可以使用ADC的噪声来提高随机性。 – 2013-03-05 09:07:50

+2

与编译器无关,而与您正在使用的libc无关。 – m0skit0 2013-03-05 09:08:33

+0

我想实现一个俄罗斯方块游戏,但我不知道如何随机生成形状 – Zolyboy 2013-03-05 09:09:47

回答

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()还要差。

+0

谢谢,我会试试这个 – Zolyboy 2013-03-05 09:16:45

+0

你能提供一个链接到这个例子(或告诉我如何创建种子)? – 2013-03-05 09:17:32

+0

@DavidRF链接到什么样的例子?发布的代码是独立的。 – user4815162342 2013-03-05 09:39:24