マジックカードのトリックを見たいですか?
子供の頃に学んだ最初の魔法のカードのトリックは次のとおりです。 裏面のパターンが上下対称ではないカードを1デッキ持っています。 すべてのカードを一方向に向けて整理します。 個人に、「カードを選んで、どんなカードでも覚えて、それを返してくれ」と頼みます。 (間違った方向で)デッキに入れてください。 カードがどこにあるかわからないという錯覚を与えながら、激しくシャッフルします。 彼らのカードを驚かせる。 このトリックは明らかに少し欠乏しており、今日では本質的に光沢がありますが、良い挑戦になります。入力を与えない場合、ランダムにシャッフルされたカードのデッキを出力し、ランダムに選択されたカードの1つを反転して出力するプログラムを作成します。ただし、入力が1枚のカードが逆になっているカードのデッキである場合は、逆のカードを(正しい順序で)出力する必要があります。 カードのデッキ カードのデッキは次のように定義されます: [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, 2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD, 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, 2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC] カードは番号で定義され、次にスーツの最初の文字です。カードの裏は正反対で、スーツの最初の文字の後に数字が続きます。 描かれたカード たとえば、逆にランダムに選択したカードがであった場合、4 of Clubs (4C)(シャッフルせずに、明らかに)なります: [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, 2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD, 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, 2C,3C,C4,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC] シャッフル 次に、シャッフルした後: [2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D] これは、空の入力が与えられた場合の有効な出力です。 デッキ入力 ただし、逆に、プログラムが上記の出力を入力として受け取った場合は、出力する必要があります4C。つまり、次の入力に対して: [2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D] 反転したカードが見つかるまで繰り返し処理し、それを戻し、通常の状態に戻します。したがって、ここC4でCが数値ではないことがわかり、それをとして返し4Cます。これは正しいです。 ルール 外部ソースからデッキをロードすることはできません。 空の入力は、ランダムに1枚のカードが逆になった、ランダムにシャッフルされたデッキになります。 入力としてカードが1枚反転したカードのデッキでは、カードが反転します。 他の入力があると、爆発的なラマが未来のチューブを通ってセグウェイに乗ってしまいます。 または他の何か、それについて。 選択したカードとシャッフルの順序は、両方とも一様にランダムでなければなりません。 IEすべてのカードは、逆に選択される可能性が等しくあります。 IEのすべてのカードの組み合わせは、同じ確率で出現します。 あなたは使用することSHCDやshcdスーツのために、しかし、一貫して: 大文字のスーツ(SHCD)を選択する場合も使用する必要がありますTJQKA。 小文字のスーツ(shcd)を選択する場合も使用する必要がありますtjqka。 これはcode-golfで、勝者は最下位バイトです。