30 道題背後的資料結構

SBTI 的測試介面看起來很簡單——30 道題,每道 3 個選項,點點點就完事了。但在你點「下一題」的那幾秒鐘裡,後台已經在悄悄搭建一個關於你的心理模型了。

首先要搞清楚一個核心結構:這 30 道題不是隨機排列的。它們被精確分配到 15 個心理維度上,每個維度恰好 2 道題。維度編號從 S1 開始,到 So3 結束,按自我(S1-S3)、情感(E1-E3)、態度(A1-A3)、行動(Ac1-Ac3)、社交(So1-So3)的順序排列。第 1-2 題對應 S1(自尊穩定性),第 3-4 題對應 S2(自我清晰度),第 5-6 題對應 S3(價值錨定),以此類推。

每道題的三個選項分別對應 1 分、2 分、3 分。但這裡有一個容易被忽略的細節:並不是所有題目的選項都是正序排列的。部分題目的分值是反過來的——第一個選項是 3 分,最後一個選項是 1 分。這種反轉設計是為了防止你機械地「全選第一個」或「全選最後一個」來操作結果。

30 道題做完,系統手裡有了 30 個分值。接下來就是把它們按維度加總——每個維度的 2 道題分數相加,得到該維度的原始分數。由於每道題 1-3 分,2 道題加起來的範圍就是 2 到 6 分。這 15 個原始分數,就是你整個測試結果的基礎數據。


從分數到等級:三檔歸類

原始分數拿到手之後,下一步是把它們歸檔。歸檔邏輯簡單到令人意外:

  • 2-3 分 → L(Low,低)
  • 4 分 → M(Medium,中)
  • 5-6 分 → H(High,高)

注意看這個分佈:L 覆蓋 2 分和 3 分兩個值,H 覆蓋 5 分和 6 分兩個值,而 M 只對應 4 分這一個值。這意味著拿到 M 的機率是最低的——你的兩道題必須恰好是 1+3 或 2+2 的組合。

這個設計選擇很有意思。它說明 SBTI 有意避免了「中庸陷阱」——不讓大多數人都落在中間地帶,而是把你往兩頭推。你在某個維度上大概率是偏高或偏低的,而不是不高不低。這讓最終的人格畫像更鮮明、更有「個性」,也更適合做成截圖發 IG 限動。

假設你在 S1(自尊穩定性)維度的兩道題分別選了 2 分和 3 分,加起來 5 分,歸入 H。在 E2(情感投入度)維度選了 1 分和 2 分,加起來 3 分,歸入 L。15 個維度都做完歸檔,你就得到了一個 15 位的字母串。按五組維度用短橫線隔開,看起來像這樣:HMH-LML-HHM-LMH-HML。這串字母就是你的「人格 DNA」——SBTI 所有後續計算的輸入。


模式配對:你的 DNA 對比 25 種標準模板

拿到你的人格 DNA 之後,系統要做的事情是:把它和 25 種常規人格類型的標準 DNA 逐一比較,找出最像你的那個。

每種常規類型都有一個預定義的 15 位模式字串。比如 CTRL(拿捏者)的標準模式是 HHH-HMH-MHH-HHH-MHM,DEAD(死者)的標準模式是 LLL-LLM-LML-LLL-LHM。你可以直觀地看出區別:CTRL 幾乎全是 H(高),而 DEAD 幾乎全是 L(低)——一個是什麼維度都拉滿的控制達人,一個是什麼維度都擺爛的行屍走肉。

比較的方法用的是曼哈頓距離(Manhattan Distance)。先把 L/M/H 映射成數字:L=1,M=2,H=3。然後把你的 15 維度數字串和標準類型的 15 維度數字串逐位相減,取絕對值,再加總。

距離越小,表示越像。理論最大距離是 30(15 個維度每個差 2),然後轉換成相似度max(0, round((1 - 距離/30) × 100))%。距離越小,相似度越高。


排名、兜底和那瓶酒

系統對所有 25 種常規類型都做完計算之後,按距離從小到大排序——距離最小的類型就是你的最佳配對。如果兩個類型距離相同,會進一步比較「精確配對維度數」(即完全一致的維度有幾個),配對越多的排前面。

但在宣布結果之前,還有兩道閘門

第一道閘門是相似度門檻。如果你的最佳配對相似度低於 60%——也就是說你和最像你的那個類型都只有不到六成像——系統會判定「現有模板裝不下你」,直接把你歸入 HHHH(傻樂者)。這是一個工程上的「兜底」設計:確保再怎麼奇葩的答題模式都能得到一個結果,而不是一個報錯頁面。

第二道閘門在時間線上其實更早:DRUNK 檢查。30 道正式題答完之後,系統會彈出關於飲酒的補充題。如果你觸發了「酒鬼路徑」——具體來說,先通過一道 4 選 1 的門控題,再通過一道 2 選 1 的確認題——系統會完全跳過上面所有的模式配對流程,直接給你 DRUNK。你之前認認真真答的 30 道題?全白費了。這就是 SBTI 最初作為「勸酒工具」留下來的彩蛋。

所以完整的結果判定流程是:先查 DRUNK → 如果沒觸發,做模式配對 → 最佳配對 ≥ 60% 就用它 → 低於 60% 就給 HHHH。整個流程在程式碼裡只有幾十行,但產生了數千萬使用者的人格標籤。


結果編碼:16 個數字的分享密碼

測試結果出來之後,還有最後一步:把它編碼成可分享的格式

SBTI 的分享連結裡藏了一個 16 位的純數字字串。前 15 位是你在 15 個維度上的原始分數(每個維度一位數字,範圍 2-6),最後 1 位是 DRUNK 標記(0 或 1)。比如字串 5342364553423420 表示:S1=5, S2=3, S3=4, E1=2, E2=3, E3=6, A1=4, A2=5, A3=5, Ac1=3, Ac2=4, Ac3=2, So1=3, So2=4, So3=2,DRUNK=0。

這個編碼被嵌入分享連結的 ?result= 參數中。朋友打開連結後,系統直接從這 16 位數字反推出完整的維度得分和配對結果——不需要重新答題就能看到你的結果。這就是為什麼 SBTI 的分享連結體驗那麼順暢:點開就能看,看完可以直接拿自己的結果來做 CP 配對。

這種編碼方式也意味著一件事:你的分享連結裡包含了你所有 15 個維度的原始分數。懂技術的人可以直接從連結裡讀出你的完整心理畫像,甚至拿你的分數去手動計算你和其他類型的配對度。某種意義上,這個 16 位數字比你的類型名字承載了更多資訊——它是一張完整的心理快照,只是被壓縮成了一串不起眼的數字。


為什麼了解演算法很重要

有人會問:了解這些演算法細節有什麼用?我就想測個類型發個 IG 限動啊。

了解演算法的價值不在於讓你「玩得更好」,而在於幫你正確理解結果的含義和限制

知道了每個維度只有 2 道題,你就明白為什麼重測結果會變——一道題改一個選項,維度分數就可能從 H 變成 M 甚至 L,整個配對結果隨之翻轉。知道了曼哈頓距離的計算方式,你就理解了「73% 配對」和「95% 配對」的區別到底有多大——前者意味著 15 個維度裡有好幾個和標準模式不一樣,後者幾乎是完美吻合。

知道了 HHHH 的 60% 門檻,你也就明白為什麼這個類型那麼稀有——25 種標準模式已經覆蓋了絕大多數的維度組合空間,你得非常「非標」才能落到所有模板的盲區裡。

SBTI 的演算法不複雜,但它足夠優雅。用最少的數據(30 個選擇)構建出一個有 15 個維度的心理畫像,再用最簡單的距離計算把它配對到一個有梗、有畫面感、讓人忍不住截圖的標籤上。整個系統從輸入到輸出,都是為「讓你有東西可以分享」這一個目標設計的