2013-03-05 80 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