隨機序列問題

2022-09-08 08:48:09 字數 585 閱讀 1181

題目:

假設有乙個陣列,裡面有10個元素 int a[10]=。請寫乙個演算法,得到a陣列的乙個隨機排列。要求時間複雜度盡量小,可以使用random函式。例如輸出的隨機序列可以是:3 6 2 4 5 1 9 8 0

思路:1.將最大值max設定為9,在0~max之間產生乙個隨機數;

2.將陣列a的max下標的值和產生下標的值互換,同時max--;

3.重複步驟1,2直到max==0停止迴圈,最後a中的數為原來數的隨機排列。

**如下:

#include#include

using

namespace

std;

//定義交換陣列元素函式

void ss(int a,int x,int

len)}//

陣列隨機排列的實現

int* ***n(int a,int

length)

returna;}

intmain()

;

int *b=***n(a,10

);

for(int i=0;i<10;i++)

}

Android Java隨機序列

public class nrandom random random new random for int i 0 i no i random null return sequence param array 被檢索的資料來源 param key 檢索的資料 return public static...

隨機序列產生演算法

題目 已經提供乙個int rand int n 的隨機數生成函式用來生成 0,n 的隨機數,求編寫演算法生成1至n的隨機序列,要求該序列包含不重複的1 n數字。include include include using namespace std 首先,建立乙個長度為n的陣列array,初始值是0 ...

隨機序列常用演算法

include include include include include include include using namespace std author marco date 2018 4 21 aim 序列隨機化的常用兩種演算法 1.什麼是隨機化的序列 得到該序列的概率是1 n 錯誤的...