覚えやすいが、理論的には簡単に作成できない数字
あなたの課題は、これらの基準に適合する一様な乱数を生成する任意の言語でプログラム/関数を作成することです。
長さは5桁です
2つの別々の繰り返される数字のペアがあります
繰り返される数字の1つのセットは先頭または末尾にあり、数字は隣り合っています
奇数番号は他の数字のペアで囲まれています
2桁のペアと他の番号はすべて一意でなければなりません
あなたのプログラムは、あなたの裁量で、先頭にゼロを付けても付けなくてもかまいません。先行ゼロがサポートされている場合、出力に含める必要があります:6088ではなく06088。先行ゼロがサポートされていない場合、06088などの数値はまったく生成されません。
テストケース
受け入れられる出力:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
受け入れられない出力:
55555 77787 85855 12345 99233 12131 アブデ 5033
このpastebinリンクで、より受け入れられるテストケースを見つけることができます。
これらは、このpythonプログラムで作成されました。
ランダムにインポート 範囲(100)のiの場合: if random.randint(0,100)> = 50:#trueの場合、最初にペアをタッチする temp = [] #working array temp.append(random.randint(0,9))#ランダムな数字を追加 temp.append(temp [0])#同じ数字を再度追加 x = random.randint(0,9) 一方、x == temp [0]: x = random.randint(0,9) temp.append(x)#別の一意の数字を追加 y = random.randint(0,9) 一方、y == temp [0]またはy == temp [2]: y = random.randint(0,9) temp.append(y)#別の一意の数字と前の一意の数字を追加 temp.append(x) その他:#最後にタッチペアを置く temp = [] #working array temp.append(random.randint(0,9))#ランダムな数字を追加 #一意ではありませんが、再試行してください x = random.randint(0,9) 一方、x == temp [0]: x = random.randint(0,9) temp.append(x)#別の一意の数字を追加 temp.append(temp [0])#同じ0番目の数字を再度追加します y = random.randint(0,9) 一方、y == temp [0]またはy == temp [1]: y = random.randint(0,9) temp.append(y)#別の一意の数字を2回追加する temp.append(y) tempstr = "" 一時的なiの場合: tempstr + = str(i) 印刷tempstr
これはcode-golfなので、バイト単位の最短回答が勝ちです!
random
は、一様に意味するわけではありません