-
帕斯卡中的隨機數。
隨機數是指理論上沒有規則可遵循的一系列數字,每個數字在指定範圍內出現的概率相等,並且不能用於跟蹤前乙個數字。 一般隨機數生成器的基本原理是:首先,初始化乙個隨機種子,其初始值可以是任意整數; 每次獲取到乙個隨機數時,都會根據隨機種子進行特殊操作,獲取並返回乙個隨機數,然後對隨機種子進行一些操作,改變隨機種子的值。
這樣,可以生成許多相對隨機的數字,但是具有相同初始值的隨機種子將產生完全相同的隨機序列。
Pascal 的系統單元提供了兩個與隨機數相關的子程式:randomize 和 random。
隨機化過程用於初始化隨機種子,其初始值取決於當前系統時鐘。
隨機函式用於獲取隨機數。
它有兩種形式的呼叫:
random,返回乙個介於 0 和 1 之間的隨機實數(不包括 1);
random(n) 返回乙個介於 0 和 n 之間的隨機整數(不包括 n),其中 n 是單詞整數。
此外,系統單元中隨機種子變數的識別符號是 randseed,您也可以手動更改。 在資訊學奧林匹克競賽中,隨機數可用於隨機化搜尋、窮竭等演算法,以優化其效能,也可用於在快速排序中選擇關鍵數字,使快速排序演算法的最壞情況沒有固定的對應數字序列。 如果希望使用隨機數的程式對相同的輸入資料具有常量輸出,則可以將 randseed 設定為固定值。
random(10000)
立即取出數字後,lz只需要寫乙個函式將數字轉換為字元,並在其前面填寫零即可確定該字元是否已經存在。
ps:如何判斷,就看你怎麼存,存。
-
1.前面0的問題是因為(假設你現在輸入5,即num是5),陣列的長度是5,但是隨機數值是random(5+1),也就是說隨機值在0-5之間,總共有6個數字,那麼自然不能取乙個。
2.改成random(num)時,對於k:=0到i do,我個人覺得應該是k:=0到i-1 do
3.隨機數演算法有很多簡單的方法,比goto簡單得多,比如最常見的偽演算法。
a.建立乙個陣列 x[n] 並為每個元素分配乙個值(例如,0-n 之間的隨機數),然後 x[0]=0, x[1]=1 到 x[n]=n;
b.從 x[0] 到 x[n],隨機交換元素和 x[0-n] 之間的任意數字。
如果是 delphi2010 或更高版本,則有類似 tdictionary 的東西。
-
你每次從0到5取6個數字,只儲存其中的5個數字來顯示,一定有乙個數字沒有。
就像第二次沒有 5 一樣。
為什麼要使用goto,繼續就可以了。
-
似乎該程式通常處於無限迴圈中。 要求輸入的 num 不應小於 2,否則程式會出錯。
-
只需新增判斷,如果您已經有了這個數字,請再拿一次。 直到你找到乙個不重複的。
-
初始化時將陣列設定為 0。 由於 u for k:=0 to i do 這個地方在迴圈中被推回一位,當它隨機為 0 時,總是檢查 0 是否已經存在,使 0 不可能第一次發生。
這個地方應該改為 k:=0 到 i-1 do
改為 l:x:=random(num) 時出現無限迴圈的原因和以前一樣,就是 k:=0 到 i 做。 迴圈持續,僅留下 0 未分配,並且始終檢測到 0。
-
您好,我是來幫助您解決問題的:
根據您的需求,我根據您的**進行了優化和改進,實際測試已經通過!
我將上傳整個測試原始檔!
其實也可以把這個**做成乙個獨立的功能,這樣就可以復用了!
-
實際上,不使用這麼多迴圈太複雜了。 你可以參考這篇文章。
-
1、randseed;隨時發生的“種子”。 如果未賦值,則每次執行的結果隨機序列相同。
因此,每個呼叫的值必須不同。
2、randomize;使用當前機器時間作為“種子”初始化隨機數生成器。
3. random() 從 “seed” 初始化的隨機數開始,開始生成乙個隨機數序列 但是 delphi 中的 random() 產生乙個偽隨機數,即 random() 生成的隨機數在程式的兩次執行中是相同的。 首先執行 randomize,然後 random 是真正的隨機數,即 randomize 初始化隨機數生成器。
random()
示例:生成 20-500 之間的隨機數 隨機化;
20+random(500-30+1);
-
使用此函式函式 randomrange(const afrom, ato: integer): integer;
function getsqlserverlist(strings:tstrings):boolean;
該函式的實現方式如下: >>>More
步驟1方法:首先雙擊開啟PhotoshopCS4
檔案 - 新建,將顯示“建立”對話方塊。 寬度和高度自定義 選擇白色作為背景內容,然後單擊確定。 >>>More
點選桌面左下角的“開始”-“執行”,然後輸入“DXDIAG”回車,將啟動DirectX診斷工具,您可以在“系統”選項卡下部的“DirectX版本”條目右側看到當前版本號。 >>>More