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)
ありがとうございます。
押入れから取り出して、古い本だが、河西朝雄「構造化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)