この記事は「合成数大富豪 Advent Calendar 2024 - Adventar」の15日目の記事になります。昨日はカステラさんの「(公開次第ここにURLを入れる)」でした。
はじめに
今日のお話は、札の組を多重集合っぽく考えていきましょうという話になります。(怪しい部分があるので要相談。)
合成数大富豪のように出せる札の組み合わせが少ないゲームにおいて、組と組がどれだけ近いのか、離れているのかを測ったりすることは重要そうです。
ということで今回は、札の組を多重集合として捉えて、拡張・換装のお話を少ししましょう。話のメインは記法そのものになります。
未完成なのでご意見募集中です。
札の組の記法(ジョーカー抜き)
まず、札の組の記法を定めましょう。ジョーカーについては後から別途考えます。
札の組をトランプの札と括弧とカンマを使ってのように書くことにします。
という表記と全く同じものを表す方法としては、次のような方法が考えられます。
- ←長すぎる
- ←コンピュータに読ませるならこれ。
また、素数・合成数大富豪的な使いやすさを考えて以下のように書く場合もあります。
- のように並びを意識した書き方もあり。もちろん
- 合成数出しものようにカンマを=,*^に置き換えておくという手もある
- ←カンマが邪魔なので正直これでもいいよね
以下、を札の組とします。
として、に対してをの重複度とします。要するに、
とします。
札の組について、
全てのについてが成り立つとき、と書くことにします。*1
※当然、必ずしもまたはが成り立つわけではない。
かつのとき、とします。
かつ、あるについてとなるとき、
と書くことにします。
札の組について、
という組を重複度を用いて以下のように決めます。なお、は対称差を表します。
とします。
を今後多用する都合上、"+"を用いていますが、本当はを使う方がよいのでしょうかね......?
例:
]
]
として、
]
]
]
]
]
などととなります。
次に、を総枚数を表す記号とします。
要するに札の組における札の枚数を仰々しく書いただけです。
例:
]
]
として、
となりますね。
また、合成数大富豪特有の記号として、を用いてと書くことで、を素因数として素数場にを出せる組ということにします。記号については矢印にするかは要相談。
例:
さらに、必要かはわかりませんが、を用いてと書くことで、かつということにします。直和で書いていますが、正直、@でもでもなんでもいいです。(ここら辺は要相談)
例:
ジョーカーありの札の組
きちんと考えだすとジョーカーの扱いというのは難しいです。ジョーカーには大きく分けて4つの役割があります。
- 2枚出し以上でA~Kまでの代わりとしてのジョーカー
- トランプには存在しない0としてのジョーカー
- 1枚出し最強カードとしてのジョーカー
- 手札にある、まだ何として使うかを決めていない不定のジョーカー
なお、公式ルールでは素数場への1枚出しジョーカーは最強カードとして『扱う』というものがあります。『扱うことができる』ではないので1枚出しの素数場においてはXはA~Kの代替としては扱えません。例えば、X|X=K,X=2*2|X=4のような出し方は禁止されています。
ジョーカーの扱い方については用途に合わせてケースバイケースで考えるのが良いでしょう。
1.素数や合成数を探索するだけなら、そもそもジョーカーを考えないのもあり
単に素数・合成数探索をするだけならジョーカーについて考える必要はあまりないです。
特にトランプ1組で考える場合、ジョーカーが高々2枚しかないことから、として、
の範囲で札の組を考えればよいだけです。イメージとしては0,[\infty]またはA~Kの5,6枚目にジョーカーを充当するといった感じでしょうか。
実際にはXをとして扱う意味もそんなになさそうなので、については正味考えなくても良さそうですね。
また、ジョーカー枚数が高々2枚なことから
という制約もあったりします。
2.きちんと区別する
実際の手札を考えるときはという組をXを動かしつつ考えたいときもあります。
は、札のことをの札として扱っていることを表します。
の範囲で重複度を考えます。
でXをQとしたとき、
となるため、となりますね。
この考え方だと実戦で出た合成数の組を記述したりもできそう。
3.例外を除いてXについては区別しない
次は、として扱う考え方です。基本的にはこの考え方でいい気がします。
例えば、という組はのとき、
となります。この方法だとどの5がXなのかわからないですが、それでも問題ないなら先ほどの方法より楽ですね。
また、この考え方だと、はのとき、
となってしまいます。
そのため、以下の組については例外として注意することにしましょう。
このような組について扱うときはうまいことやりましょう。(適当)
拡張と(札の組についての)換装など
ここでは、合成数出しの枚数表記、拡張・換装・派生の説明(簡易版)にて書いた、拡張や換装について、今回の記号を用いてあっさり整理しましょう。
拡張
札の組に何かを追加して合成数を作ることができる組を作ることを拡張と呼びます。
札の組に対して、合成数出し可能な札の組[]tex: D]があって、となるとき、はの拡張であるという。
例:
追加枚数は
換装
この記事では「札の組についての換装」しか扱わないので単に換装といいます。
札の組についての換装を、を合成数出し可能、 かつとしましょう。 は辺りが妥当でしょうか?はによって適宜決めたほうがよさそうですね。
例:
Aと8の入れ替えによる換装
(4A6=2^5*A3、A458=2*3^6)
なお、拡張と換装にはこのような関係があります。
「は、を追加して拡張できる」
ということもできます。
には、追加枚数の同じ2通り以上の拡張があるということですね。
その他、面白そうなトピック
今回のアドベントカレンダーで扱うかは不明だけど、上の記法で簡潔に書ける面白そうだと感じたトピックだけ列挙しておきます。気が向いた人が調べてみてください。
C←CとなるCを探してみる
など。どれぐらいどんな組があるのか単純に気になります。
C←D、(C+D)←FとなるC,D,Fを探索する
として、
A6=2^4、624A=79^2
のような組。単順におもろい。
C←F,D←F,C≠D,|C|=|D|について調べる
これはかなり実戦で使えそうです。簡単なところだとなどありますが、のときなどを調べてみると役に立ちそうですね。
終わりに
今回の記事は、素数大富豪を初めたかなり初期から考えてはいたけど競技素数大富豪をやる上ではそんなに大切でもないかなーと思っていた記法の整理でした。
誰かがいつかやってくれると思っていたけれど誰もやってくれなかったので、えいやで書いてしまいました。
叩き台のつもりで読んでもらえると助かります。今回書いたことがベストな記法・定義であるとは思いません。
しかし、札の組に注目しながら合成数について議論するにあたって今回決めたことがら自体は最低限必要だと考えています。合成数の派生を考えるときに、札の組の操作や距離を測るなどは必須なはずです。みんなで議論を深めていきたいですね。
明日もOTTYで「割り切れる回数のお話」です。明日は実戦的な内容になるはず!!
*1:やの方が良い?