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……という対応だ。
各問の3つの選択肢はそれぞれ1点・2点・3点に対応する。ただし見落としがちなポイントがある。すべての問題が順方向とは限らない。一部の問題では選択肢の配点が逆転している(最初の選択肢が3点、最後が1点)。これは「全部Aを選ぶ」「全部Cを選ぶ」というハックを防ぐための仕組みだ。
30問を終えると、システムの手元には30個のスコアがある。次にこれを次元ごとに合算する。各次元2問のスコアを足して原始スコアを出す。1問あたり1-3点なので、2問の合計範囲は2〜6点。この15個の原始スコアが、テスト結果のすべての基盤データだ。
スコアからレベルへ:3段階の仕分け
原始スコアを手にしたら、次はそれをレベルに仕分ける。ロジックは拍子抜けするほどシンプルだ:
- 2-3点 → L(Low)
- 4点 → M(Medium)
- 5-6点 → H(High)
この分布をよく見てほしい。Lは2点と3点の2つの値をカバーし、Hも5点と6点の2つ。一方でMは4点の1つだけ。つまりMが出る確率が最も低い——2問の組み合わせが1+3か2+2のときだけだ。
この設計は意図的だ。SBTIは「中庸の罠」を意識的に回避している。大多数の人を中間地帯に落とさず、高いか低いかの方向へ押し出す。結果として人格画像がより鮮明になり、スクショ映えする。「全部Mでした」ではネタにならない。
具体例を挙げよう。S1(自尊心・自信)の2問でそれぞれ2点と3点を選んだとする。合計5点、レベルはH。E2(感情投入度)で1点と2点を選んだら合計3点でL。15次元すべてをレベル化すると、15文字のアルファベット列が完成する。5つのモデルグループをハイフンで区切るとHMH-LML-HHM-LMH-HMLのようになる。これがあなたの「パーソナリティDNA」——以降の計算はすべてこの文字列が入力値だ。
パターンマッチング:25のテンプレートとの照合
パーソナリティDNAが確定したら、システムはそれを25種類の通常タイプの標準DNAと1つずつ比較して、最も近いものを見つける。
各通常タイプにはあらかじめ定義された15文字のパターン文字列がある。たとえばCTRL(掌握者)の標準パターンはHHH-HMH-MHH-HHH-MHM、DEAD(死者)はLLL-LLM-LML-LLL-LHM。直感的にわかる——CTRLはほぼ全部H、DEADはほぼ全部L。
比較にはマンハッタン距離(Manhattan Distance)を使う。まずL=1、M=2、H=3と数値に変換し、あなたの15次元と標準タイプの15次元を1つずつ引き算して絶対値を取り、合計する。
具体例。あなたのパターンがHHL-MHH-MLH-HHM-HLH=数値で3,3,1-2,3,3-2,1,3-3,3,2-3,1,3。CTRLの標準パターンHHH-HMH-MHH-HHH-MHM=3,3,3-3,2,3-2,3,3-3,3,3-2,3,2と比較すると:
差分:|3-3|=0, |3-3|=0, |1-3|=2, |2-3|=1, |3-2|=1, |3-3|=0, |2-2|=0, |1-3|=2, |3-3|=0, |3-3|=0, |3-3|=0, |2-3|=1, |3-2|=1, |1-3|=2, |3-2|=1
合計距離 = 0+0+2+1+1+0+0+2+0+0+0+1+1+2+1 = 11
これを類似度に変換する:max(0, round((1 - 11/30) × 100))% = 63%。距離が小さいほど類似度が高い。理論上の最大距離は30(15次元×差2)なので、30で割って正規化している。
ランキング、フォールバック、そしてあの酒
25タイプすべてとの距離計算が終わったら、距離の小さい順にソートする。最も距離が小さいタイプがあなたのベストマッチ。距離が同じ場合は「完全一致次元数」(レベルがぴったり同じ次元の数)で順位を決める。
ただし結果を確定する前に、2つのゲートがある。
第1ゲートは類似度閾値。ベストマッチの類似度が60%未満——つまり最も近いタイプですら6割しか似ていない場合、システムは「既存テンプレに収まらない」と判定し、HHHH(ヘラヘラマン)に分類する。どんな回答パターンでも何かしらの結果が返ることを保証するエンジニアリング上の「フォールバック」だ。
第2ゲートは時間的にはもっと前に発動する:DRUNKチェック。30問の正式回答後に飲酒に関する補足質問が表示される。4択の門控質問を突破し、さらに2択の確認質問でも飲酒を選んだ場合、パターンマッチングのプロセス全体がスキップされ、結果は即座にDRUNK。それまで真面目に答えた30問は全部無駄になる。SBTIが「禁酒ツール」として始まったことの名残だ。
完全なフローをまとめると:DRUNK判定 → 非該当ならパターンマッチング → ベストマッチ≧60%ならそのタイプ → 60%未満ならHHHH。コードにして数十行だが、数千万人のパーソナリティラベルがこのロジックから生まれている。
結果エンコーディング:16桁の共有パスワード
テスト結果が出たあと、もう1ステップある。シェア可能な形式へのエンコーディングだ。
SBTIの共有リンクには16桁の純数字文字列が埋め込まれている。前半15桁は15次元の原始スコア(各1桁、範囲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。
この数列はURLの?result=パラメータに格納される。友達がリンクを開くと、16桁から全次元スコアとマッチ結果が逆算される。再回答なしで結果を閲覧でき、そのままCP診断にも飛べる。SBTIのシェア体験がシームレスな理由はこのエンコーディングだ。
これは裏を返せば、共有リンクには15次元すべての原始スコアが含まれているということでもある。技術がわかる人ならリンクから心理プロファイル全体を読み取り、他タイプとのマッチ度を手計算することもできる。この16桁の数列はタイプ名よりも多くの情報を内包している——完全な心理スナップショットが地味な数字列に圧縮されている。
アルゴリズムを知ることの意味
「細かい計算なんて知ってどうするの?タイプ名がわかれば十分でしょ」——そう思うかもしれない。
アルゴリズムを知る価値は「うまく遊ぶ」ためではなく、結果の意味と限界を正しく理解するためにある。
各次元2問しかないと知っていれば、再テストで結果が変わる理由がわかる。1問の選択を変えるだけで次元レベルがHからMやLに変わり得るし、マッチ先のタイプも変わる。マンハッタン距離の計算を理解すれば、「73%マッチ」と「95%マッチ」の差が具体的にイメージできる。前者は15次元中いくつかがテンプレと不一致、後者はほぼ完全一致だ。
HHHHの60%閾値を知れば、このタイプがなぜ希少かもわかる。25種の標準パターンが次元組み合わせ空間の大半をカバーしているので、すべてのテンプレの60%圏外に落ちるには相当「非標準」な回答パターンが必要だ。
SBTIのアルゴリズムは複雑ではないが、エレガントだ。最小限のデータ(30の選択)で15次元の心理プロファイルを構築し、最もシンプルな距離計算で「ミームになるラベル」にマッチさせる。入力から出力まで、すべてが「シェアしたくなるもの」という1つのゴールに向けて設計されている。