この質問のために、カードのデッキは次のようにフォーマットされています。
[
"AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS",
"AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD",
"AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH",
"AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC",
"J", "J"
]
カードは常に値としてフォーマットされ、その後にスーツが続きます。例えばAS
、スペードのエースです。2つのシングルJはジョーカーです。このデッキをシャッフルしたいのですが、シャッフルはSuperb™でなければなりません。
Superb Shuffle™は次のいずれかです。
- 同じスーツの2枚のカード(ジョーカーを除く)は隣接していません。
- 同じ値のカードに隣接するカードはありません(ジョーカーを除く)。
- 隣接する値(A、2、3、4、5、6、7、8、9、10、J、Q、K、 A.エースは2またはキングに隣接できないことに注意してください。
- ジョーカーは任意の位置に配置できます。
- Superb Shuffle™の定義では、カードをシャッフルするたびに異なる順序にする必要はありません。これはそれほどすばらしいものではありませんが、Superb™です。
それはすごい™だからです。
例は次のとおりです。
[
"AS", "5D", "9H", "KC", "2D", "6H", "10C", "QS", "3H", "7C", "9S",
"KD", "4C", "6S", "10D", "AC", "3S", "7D", "JH", "J", "4D", "8H",
"QC", "AD", "5H", "9C", "JS", "2H", "6C", "8S", "QD", "3C", "5S",
"9D", "KH", "2S", "6D", "10H", "J", "3D", "7H", "JC", "KS", "4H",
"8C", "10S", "AH", "5C", "7S", "JD", "2C", "4S", "8D", "QH"
]
チャレンジ:
- 素晴らしいシャッフルを実行するコードを書く
- 任意の言語を使用します。
- 入力は次のいずれかです。
- 同じ順序で上記のカードのデッキ配列または他のリスト構造で。
- 入力なし(コードはこの順序でカードのデッキを生成します)
- 出力は、上記のSuperb Shuffle™のカードの完全なデッキでなければなりません。
- Superb Shuffle™を最小バイト数で実行してみてください。
- Try It Onlineなどのオンライン通訳へのリンクが推奨されますが、オプションです。
ハッピーシャッフル!
T
代わりに使用できます10
か?