編寫一個程式,對於N個連續的整數,將它們 "洗牌",而以隨機順序 (random sequence) 重新排列。 例如,我們要把5個連續的整數 [1, 2, 3, 4, 5],重新以隨機順序排列成
[3, 5, 2, 1, 4] 或 [2, 4, 3, 5, 1] ... 等等。
# Numbers in Random Sequence
import random
def random_sequence(n,offset):
q = []
while (len(q) < n):
x = int(n*random.random()+1) + offset
exist = False
for j in range(0,len(q)):
if (x == q[j]):
exist = True
break
if (exist == False):
q.append(x)
return q
print(random_sequence(20,0))
|
在此示例中,我們想要得到 20 個從 1 到 20 之間隨機排序的整數 (因為是從 1 開始,所以偏移量是 0),
因此我們用 n=20, offset=0 作為參數調用函數,而得到以下結果
print(random_sequence(20,0))
[20, 9, 7, 10, 18, 3, 4, 8, 19, 6, 15, 5, 12, 2, 1, 13, 17, 14, 16, 11]
|
假設我們想要 20 個從 101 到 120 之間隨機排序的整數 (因為從 101 開始,所以偏移量是 100),
我們便設定 n=20, offset=100 來呼叫函數,於是可產出以下結果
print(random_sequence(20,100))
[119, 120, 105, 109, 107, 113, 118, 103, 102, 101, 108, 115, 116, 104, 112, 111, 106, 114, 117, 110]
|
|
|