30 Questions के पीछे का Data Structure

SBTI interface simple दिखता है — 30 questions, हर एक 3 options। लेकिन हर "next" button press में background तुम्हारे बारे में एक psychological model बना रहा है।

Core structure: 30 questions randomly arranged नहीं हैं। 15 psychological dimensions में precisely distributed, हर dimension को exactly 2 questions। Dimension codes S1 से So3 तक: Self (S1-S3), Emotion (E1-E3), Attitude (A1-A3), Action (Ac1-Ac3), Social (So1-So3)।

हर question के तीन options 1, 2, 3 points के बराबर। लेकिन ध्यान: सभी questions में order same नहीं। कुछ questions में scoring reversed है — पहला option 3 points, आख़िरी 1। यह "सब पहला option" जैसी mechanical answering रोकने के लिए है।

30 questions बाद system के पास 30 values हैं। Dimension-wise add करो — हर dimension की 2 questions add होकर raw score देती हैं। हर question 1-3, तो per dimension range 2 से 6। ये 15 raw scores पूरी result की foundation data हैं।


Score से Level: तीन-स्तरीय Classification

Raw scores मिलने के बाद classify होते हैं:

  • 2-3 points → L (Low)
  • 4 points → M (Medium)
  • 5-6 points → H (High)

Distribution ध्यान से देखो: L दो values cover करता है, H दो, लेकिन M सिर्फ़ 4 को cover करता है। M मिलने की probability सबसे कम।

यह design "mediocrity trap" से बचता है — majority को बीच में नहीं धकेलता, extremes की तरफ़ ले जाता है। ज़्यादातर dimensions में तुम high या low होगे, "न इधर न उधर" नहीं। Result: sharper personality portrait, ज़्यादा "character" वाला, sharing के लिए ज़्यादा suitable।

15 dimensions classify होने के बाद 15 letters की string मिलती है: HMH-LML-HHM-LMH-HML। यह तुम्हारा "personality DNA" है।


Pattern Matching: तुम्हारा DNA vs 25 Standard Templates

Personality DNA ready होने पर system इसे 25 standard types के DNA से compare करता है।

हर standard type की predefined 15-letter pattern string है। जैसे CTRL (कंट्रोलर): HHH-HMH-MHH-HHH-MHM, DEAD (मुर्दा): LLL-LLM-LML-LLL-LHM

Comparison method: Manhattan Distance। पहले L/M/H को numbers में बदलो: L=1, M=2, H=3। फिर हर dimension का difference absolute value में लो और add करो।

फिर similarity percentage में convert: max(0, round((1 - distance/30) × 100))%। Distance जितना कम, similarity उतनी ज़्यादा।


Ranking, Backup और वो बोतल

25 types का calculation होने के बाद distance के हिसाब से sort — सबसे कम distance वाला best match। दो types same distance पर हों तो "exactly matching dimensions count" compare होता है।

लेकिन result announce करने से पहले दो gates हैं:

पहला — similarity threshold। Best match 60% से नीचे हो तो system decide करता है "current templates तुम्हें cover नहीं कर सकते" और तुम्हें HHHH (बेवजह हँसने वाला) classify करता है। Engineering "backup" design।

दूसरा gate chronologically पहले आता है: DRUNK check। 30 official questions के बाद drinking के बारे में extra question। "शराबी path" trigger करो — 4-choice gate question, फिर 2-choice confirmation — तो system पूरा pattern matching process skip करके directly DRUNK दे देता है। पिछले 30 questions? बर्बाद। SBTI के "शराब छुड़ाने के tool" origin से बचा हुआ easter egg।

Full flow: पहले DRUNK check → trigger न हो तो pattern matching → best match ≥ 60% तो use करो → 60% से नीचे तो HHHH दो


Result Encoding: 16 Digits

Result आने के बाद last step: shareable format में encode करना

SBTI share link में 16 digits की number string छिपी है। पहले 15 digits 15 dimensions के raw scores (हर एक 2-6), 16वीं DRUNK marker (0 या 1)।

यह encoding share link के ?result= parameter में embedded है। दोस्त link खोले तो system 16 digits से पूरे dimension scores और matching result निकाल लेता है — बिना दोबारा answer किए result दिखता है

इसका मतलब यह भी: share link में तुम्हारे 15 dimensions के सारे raw scores हैं। Technically जानने वाला link से तुम्हारा complete psychological portrait पढ़ सकता है। ये 16 digits type name से बहुत ज़्यादा information carry करती हैं — compressed complete psychological snapshot।