八月最近在做有关迷宫(maze)的实验,要求按照用户输入的维数自动生成迷宫╮(╯▽╰)╭,所以需要用到随机数。
在C,C#中,生成随机数最方便的方法,就是使用rand()函数<( ̄︶ ̄)/
举个栗子:
#include <iostream> int main() { int i; for (i = 0; i < 10; i++) { printf( "%d\n", rand()); } return 0; }
这样就能打印出10个随机数了(๑•̀ㅂ•́)و✧
然而再试了一次,发现第二次打印出来的随机数跟第一次居然是一模一样的( ̄口 ̄)!!
于是乎,还需要在此基础上,多调用一个函数,srand
如下:
#include <iostream> #include <time.h> int main() { int i; srand((unsigned)time(NULL)); for (i = 0; i < 10; i++) { printf( "%d\n", rand()); } return 0; }
这样每次打印出来的10个随机数都不一样啦<( ̄︶ ̄)>
另外,如果想取多少内的随机数,比如100以内的随机数哇,4以内的随机数哇(八月做迷宫的时候就用到了这个<( ̄︶ ̄)/,随机生成4个方向)
只需要在rand()的后面追加上“%n”,n即代表取多少以内的随机数。(其实就是在之前的基础上取个余数啦_(:з」∠)_ )
再举个栗子:
#include <iostream> #include <time.h> int main() { int i; srand((unsigned)time(NULL)); for (i = 0; i < 10; i++) { printf( "%d\n", rand()%10); } return 0; }
这样就能取到10个10以内的随机数了(๑•̀ㅂ•́)و✧