当前时间: 2026-04-10 15:26:51
更新时间: 2026-04-10
分类:软件教程
评论(0)
最近大火的SBTI,源码解析
最近突然爆火的sbti,刚好研究下底层是怎么计算的。
题目库里:总共有32道题目,其中有2道题目的特殊题目(特定情况下才会出现)
特殊题目是作者设置的小彩蛋:当爱好选了饮酒时,就会出来第二道题目,如果在第2道题目里选了2,那么会直接是隐藏人格:DRUNK
作者初衷是劝解爱喝酒的朋友戒酒,这个设置还是挺有意思的。
回到正常题目:正常的30道题里,每两道题目对应一个人格维度;总共设置了5个大类,细分成15个人格维度,每个维度分3个程度:
回到算法本身,30道题目里每个答案都对应了1,2,3分
两道题目里,选项的数值相加,小于等于3分代表L(低级别),等于4分则M(中等),否则H(高)
意思就是根据两道题目的得分,划分十五个人格维度里,其中一个维度的级别。比如,S1维度里的两个题目以及对应的三个级别:
如此计算出十五个维度的等级,接着就是和定义好的人格类型匹配:
比如:OH-NO人,对应的就是:HHL-LMH-LHH-HHM-LHL
简单来讲,就是遍历27次(27个人格),每次遍历的时候,如
OH-NO:HHL-LMH-LHH-HHM-LHL
把用户测试的结果:假设是HHH-MMM-LLL-LLL-LLL
H代表3,M代表2,L代表1。十五个维度分别相减然后取绝对值,再把十五个结果相加得到最终的数字(distance参数),就是代表和这个人格的差距。
最终所有27个人格里,取差距最小的那个,就是最终结果。
可以说很简单的算法,作者很明显也是用的ai生成的代码,心理学的理论知识都是站在巨人的肩膀上,都是用的已有理论。
为了方便作者设置题目,理解十五个维度。ai还给十五个维度的每个级别都设置了一段人能看懂的话,方便作者设置题目。ai真是太贴心太好用了。