1/1

1〜20まで重複しない乱数表示 その2

VBScriptを参考に一致しない乱数を表示するスクリプトを考えてみた。
前回の記事とはまた違っている。


#naraberu4.py
import random
a=[]
for i in range(1,21):
a.append(i)

for i in range(1000):
idx01=int(random.random()*20)
idx02=int(random.random()*20)
temp=a[idx01]
a[idx01]=a[idx02]
a[idx02]=temp

print a
print sorted(a)



ありがとうございます。
  • -
  • -

1〜20まで重複しない乱数表示 その3

押入れから取り出して、古い本だが、河西朝雄「構造化BASIC」に一致しない乱数を配列を使って取り出すアルゴリズムが載っていた。しかしながら、for〜nextで回してgotoで飛ばしている。ちょっとおかしいと感じた。
pythonで下記のように組んでみた。すっきりしました。ありがとうございます。


#naraberu5.py
import random

a=[]
while len(a)<20:
k=int(random.random()*20+1)
if k not in a:
a.append(k)
else:
continue

print a
print sorted(a)


  • -
  • -

1/1