發新話題
打印

請問Spot It怎麼設計的 / 數論集合問題

請問Spot It怎麼設計的 / 數論集合問題

大家好,我是艾和狄
前陣子我玩到桌遊Spot It,覺得深入淺出,設計得真是好,
於是開始思考他怎麼設計的,雖沒有得到答案,
但配合著ChatGPT,發展出一套設計方法,
大概跟原設計者用的是不同方法,不過還堪......不太好用。
目前缺了最重要的產生部份,因此想來請大家幫幫我。
我有兩個問題,其中若有一個問題能回答我就心滿意足了

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

「如何設計出一套S張卡片,每張卡片擁有N個圖案,讓其中每兩兩卡片恰好只有1個圖案相同」
(其實就是問Spot It怎麼設計的)

「在mod S的整數宇集合中,如何找到關鍵集合D,使得D與D+1、D與D+2、D與D+3.....D與D+S-1都恰好只有一個元素相同」
例子:mod 7下 關鍵集合D找到{0,1,3},用D+1、D+2...D+6製造其他集合
 {0,1,3}
 {1,2,4}
 {2,3,5}
 {3,4,6}
 {4,5,0}
 {5,6,1}
 {6,0,2}
而這七個集合兩兩對比,都剛好只有一個元素相同

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

最開始的問題,玩完Spot It後我心中就產生了疑問:
「如何設計出一套S張卡片,每張卡片擁有N個圖案,讓其中每兩兩卡片恰好只有1個圖案相同」?

詢問ChatGPT,回答我說這套Spot It用了「有限射影平面」理論設計的。
在此理論中,

於層級q的有限射影平面中
有q^2+q+1個點與同數量的直線,
每條直線上有q+1個點,
任意兩條直線必定且只有一個共同的交點

轉換到卡牌說法就是

於層級q的牌組中
有q^2+q+1個圖案與同數量的卡片,
每張卡片上有q+1個圖案,
任意兩張卡片必定且只有一個共同的圖案

而Spot It的層級是q=7,S=49+7+1=57,這與設計者說的原本57張牌為了生產少放2張變成55張,對得上。
但ChatGPT說完這個理論後,直接列了一個q=2的Fano平面排列方式給我
 卡片 1        {A, B, C}
 卡片 2        {A, D, E}
 卡片 3        {A, F, G}
 卡片 4        {B, D, F}
 卡片 5        {B, E, G}
 卡片 6        {C, D, G}
 卡片 7        {C, E, F}
然後就啥也沒說了

接著就是長久的我問ChatGPT,ChatGPT開始天南地北的瞎扯,
問他那什麼理論時,他可以扯出一大堆理論,
但問到用什麼具體算法製造的,他會扯一堆之後,再用暴力弄出一個解答給我。
過程中,他曾舉出一個q=2、S=7例子,
 卡片 1        {A, B, D}
 卡片 2        {B, C, E}
 卡片 3        {C, D, F}
 卡片 4        {D, E, G}
 卡片 5        {E, F, A}
 卡片 6        {F, G, B}
 卡片 7        {G, A, C}
這個例子很明顯跟一開始的例子用的是不同方法
而我注意到這個例子中,後面所有卡片都是第一張卡片平移而生的。
整套方法為,在mod7宇宙中 找到了關鍵集合D{0,1,3}
用D,D+1,D+2....D+6製造了S張卡片,最後對應回元素/圖案

那麼,拼圖缺的就是這個關鍵集合D的製造方法了,
因此我的問題改變成了:
「在mod S的整數宇集合中,如何找到關鍵集合D,使得D與D+1、D與D+2、D與D+3.....D與D+S-1都恰好只有一個元素相同」

此法毫無疑問,侷限排除了很多可能性、縮小了解答範圍,
但卻可以讓製造卡片變得簡單,還讓所有卡片都有了廣義的對稱性,
因此我覺得此方法是有價值的,我取名為關鍵集合法(未完善)。

而可能受到了之前ChatGPT的蠱惑影響,我這裡的D的元素取q+1個,S取q^2+q+1,沒有理論根據。
接著ChatGPT又扯到了Singer定理,這部分我就看得一知半解了
說什麼有限影射平面PG(2,q)下
 S = q^2 + q + 1
選擇質數p
選擇冪次a = (S-1)/(q+1)
然後去驗證p的0次方到S-1次方完美覆蓋S下所有餘數
最後用p^a為基底來,以基底的次方製造關鍵集合D
這個理論看起來真的很炫,但我試了幾次都沒有成功,期待高手看到突破口。

另外ChatGPT還提到了什麼用多項式去引入q跟S找答案的,
那些太玄,我完全看不懂,這裡就不引述了。

總之最後,我還是用電腦暴力破解了,因為關鍵集合法未完善,
製造關鍵集合D的過程,暫時用寫程式來代替:
先選{0,1}兩個基本元素,然後其他所有組合嘗試一遍,
以此去跑,已經找到了q=9下除了q=6的關鍵集合。
我有把q=6下含{0,1}的所有組合都試過了但沒有結果,也缺理論支持。

如果有朋友需要關鍵集合例子來做實驗,這裡提供目前找到的關鍵集合D(q,S)
 D(2,7) = {0, 1, 3}
 D(3,13) = {0, 1, 4 ,6}
 D(4,21) = {0, 1, 4 ,14, 16}
 D(5,31) = {0, 1, 3, 8, 12, 18}
每個q下的D並非絕對唯一,但我破電腦配備也不是很好,
光跑q=8就花了我電腦半天,q=9跑了快一個禮拜,q=10....我只能說跑好幾天了,目前3%。
因此想找找看有沒有高手能直接看出這個關鍵集合D的製造方法

最後,剛剛我去找到這個網站 https://aaronbarker.net/spot-it/spot-it.html
可以讓大家自己創自己的Spot It
然後我去打開他的網頁程式碼,code中只貼了q=7以下的部份集合,沒有製造方法:
   "words7": {
        "wordcount": 7,
        "totalcards": 7,
        "cards": {
            "card1": [0, 1, 4],
            "card2": [2, 3, 4],
            "card3": [0, 2, 5],
            "card4": [1, 3, 5],
            "card5": [0, 3, 6],
            "card6": [1, 2, 6],
            "card7": [4, 5, 6],
    "words57": {
        "wordcount": 57,
        "totalcards": 57,
        "cards": {
            "card1": [0, 1, 2, 3, 4, 5, 6, 49],
            "card2": [7, 8, 9, 10, 11, 12, 13, 49],
            "card3": [49, 14, 15, 16, 17, 18, 19, 20],
            "card4": [49, 21, 22, 23, 24, 25, 26, 27],
            "card5": [32, 33, 34, 49, 28, 29, 30, 31],
            "card6": [35, 36, 37, 38, 39, 40, 41, 49],
            "card7": [42, 43, 44, 45, 46, 47, 48, 49],
            "card8": [0, 35, 7, 42, 14, 50, 21, 28],
            "card9": [1, 36, 8, 43, 15, 50, 22, 29],
非常明顯這個網站用的也不是我所謂的關鍵集合法

以上就是我自己的研究了,感謝您耐心閱讀到此m(_ _)m,
兩個問題,求高手解答其一

[ 本帖最後由 ihady 於 2025-4-15 12:01 編輯 ]

TOP

發新話題