C 學習筆記 隨機函式Random 的用法詳解

2022-09-26 05:21:10 字數 2954 閱讀 4631

random.next() 返回非負隨機數;

random.next(int) 返回乙個小於所指定最大值的非負隨機數

random.next(int,int) 返回乙個指定範圍內的隨機數,例如(-100,0)返回負數

1、random(number)函式介紹

見幫助文件,簡單再提一下,random(number)返回乙個0~number-1之間的隨機整數.引數number代表乙個整數.

示例:trace(random(5));

2、math.random()

見幫助文件。返回乙個有14位精度的0~1之間的數,注意沒有引數。

示例:trace(math.random());

3、自定義的函式

我們有時候需要的隨機數可不是這麼簡單。

比如我們想返回乙個有兩位小數的隨機數,返回兩個數之間的隨機數,返回字母隨機數,返回多個隨機數程式設計客棧等等,

這些都需要我們自己編寫函式來實現。下面的**直接複製到主場景第一幀就可以呼叫了。注意有的函式需要入口引數。

#1: 返回乙個共有n位數,其中m位是小數的隨機數

function randomxiao(n,m)

可以用trace(randomxiao(3,2));實驗一下。這個函式簡單。math.pow(n,m)用於返回乙個以n為底,m為指數的數。乘方!

# 2: 返回乙個n到m之間的隨機數

function randomnm(n,m)

else

}之所以用random(m-n+1)是因為隨機數的範圍是m-n,加上1使得m也能在裡面。加上n保證隨機數以n為下限。

加上判斷使函式更完整。另外,如果要返回乙個負數隨機數,也可以用randomnm(n,0);當然,我想更一般的是用-random(n);

# 3: 返回乙個字母

function randomascii()

return c;

}#4: 返回乙個不區分大小寫的隨機字母

如果要返回大寫,把if條件句去掉就行了。如果要返回小寫,可以把條件句改為恆成立,或者去掉條件,最後一句改為:

return c.tolowercase(); string.fromcharcode(number)函式返回number代表數字的ascii碼。

tolowercase()用於將大寫字母轉為小寫。

# 5: 返回乙個n到m之間的k個互異隨機數

private void randomkdiffer(int n, int m, int k, int arrayk)

}if (j == i)

}}陣列arrayk中的元素即為所得值。注意到我們借用了random(m-n+1)+n來返回乙個n~m的隨機數。所以m本身也會被返回。

如果要返回m以內的數,可以把n值改為0。如果要隨機返回不確定個數,可以把入口引數的k值賦為k=random(m-n);

隨機返回不一定互異的數,把判斷去掉就可以了,注意i++不要漏掉。這裡不再給出。

#指定若干個字元/數字,然後從中隨機返回乙個(或多個)字元/數字,可以把原字元賦給乙個陣列,再根據陣列的下標來

決定返回值。這裡不再舉出函式,大家可以自己嘗試。

#另需指出,對於隨機設定乙個mc的顏色值,我們較多採用mccolor.setrbg(random(0xffffff));下面的例子中會有說明。

如果要指定乙個色域,可以採用上面給出的函式。如果對color物件不太了解的可以查幫助,這裡不作討論。

以上函式算是由random直接衍生的,下面再舉個例子,可以說是衍生函式的衍生函式,其中會直接用到上面給出的函式,請注意。

#6: 返回乙個指定長度的隨機大寫英文本串

function randomstring(n)

*/arrayb = arrayb+c;

}return arrayb;

}注意到stringcharcode方法,如果要寫成小寫,則把返回值寫成arrayb.tolowercase();如果返回乙個不區分大小寫的字串,

則把注釋去掉.如果要返回乙個不指定長度的字串,則可以把入口引數賦值為random(n);這樣只指定其上限.此函式也可以用

randomascii函式實現,留給大家自己思考.

#7:在幾個區域中選出隨機數

比如,在1~20,45~70這兩段數之間選取乙個隨機數。因為區域數未定,所以直接用乙個確定的函式編寫多有不便,

我們要使用的方法就是用switch語句進行定向,具體的我們給出乙個函式,返回乙個1~20,45~70內的數,其它區域讀者請自行更改。

function rfppcrcjpufandomarea()

}注意,我們並沒有寫入口引數,而是直接在函式中就確定了是兩段數,而且範圍也是確定的。如果是三段,則改為a=random(3);

同樣增加乙個case就可以了。當然,你也可以把第段數的範圍設為入口引數,這裡就不再舉例了。但是這樣做可能會使引數增多,

我個人是不太喜歡乙個需要很多引數的函式的。類似的,我們也可以隨機返回乙個字母段或幾個字母段或者字母加數字段的乙個數。

方法也只是前幾個函式的乙個結合。這裡僅舉一例,返回指定的大寫字母段的乙個隨機字母。

提醒一下,小寫字母的ascii碼a~z分別對應97~122.

function randomaarea(a,b) else

}其中用到乙個函式ord(char),這是乙個不推薦的函式.用於返回char字元的ascii碼。

如果大家想在任何地方呼叫函式,則需要稍稍變一下,把我們寫的函式改變為全域性函式.這樣就可以不用標明路徑而自如地向呼叫系統

函式一樣了.方法如下.例如:函式randomxiao如果要宣告為全域性函式,需要把第一行改為:

_global.randomxiao=function(n,m)

對全域性函式的概念不很清楚的朋友不用被這個名詞嚇倒.

這樣改了函式第一行之後,在任何地方,比如在乙個mc裡,直接用(對,直接用,不用加_root路徑了)randomxiao(n,m)就可以了.

本文標題: c#學習筆記- 隨機函式random()的用法詳解

本文位址:

random 隨機函式

randomize 是c函式庫提供的乙個函式,功能給產生隨機數的進行初始化。rand 能產生隨機數,如不先呼叫randomize 進行初始化,每次產生的可能都是同乙個數。函式名 randomize 功 能 初始化隨機數發生器 用 法 void randomize void randomize 是c函...

random隨機函式

1 verilog系列 如何 random隨機數 qq.com 1 功能 根據指定的種子 可以不指定種子 產生乙個有符號的32位整型偽隨機數 2 使用 random seed 或 random 或 random random seed n n 0 可實現產生範圍為 n 1 n 1 的整數 1.1 r...

Python自學筆記 隨機函式random

隨機數生成是日常工作中經常使用的功能。下面簡要介紹下python的隨機數生成標準庫random random是內建 built in 函式,作用是產生隨機數,使用較多.首先是匯入模組 import random接著就可以呼叫random模組下的函式了。最常用的函式有如下 1 random.rando...