先声明,我不是篮球专家,就是个写golang的程序员,但既然要用代码思维讨论“世界篮球第一人是谁”,我觉得这问题本质上就是个数据结构的选择题——你用什么指标来衡量,就得出什么答案。
这问题本身就有“bug”
你要是上百度搜“世界篮球第一人”,跳出来的结果绝对打架,有人说是乔丹,有人说是勒布朗,还有人说科比、贾巴尔、魔术师……你给个数组,它塞不下。
用golang的思维来解释:这个问题其实是个多返回值函数,你传入“冠军数量”,它返回比尔·拉塞尔;你传入“总得分”,它返回勒布朗;你传入“影响力”,它返回乔丹,每个维度都有最优解,关键看你取哪个键。
那有没有绝对标准?有,但不完美
我列个表,咱用数据说话(不是瞎编的,都是公开记录):
| 球员 | 总冠军 | MVP | 总决赛MVP | 总得分 | 全明星次数 | 场均得分 |
|---|---|---|---|---|---|---|
| 迈克尔·乔丹 | 6 | 5 | 6 | 32,292 | 14 | 1 |
| 勒布朗·詹姆斯 | 4 | 4 | 4 | 38,000+ | 19 | 1 |
| 卡里姆·阿布杜-贾巴尔 | 6 | 6 | 2 | 38,387 | 19 | 6 |
| 比尔·拉塞尔 | 11 | 5 | 14,522 | 12 | 1 | |
| 科比·布莱恩特 | 5 | 1 | 2 | 33,643 | 18 | 0 |
*注:拉塞尔时代尚无总决赛MVP奖项,但后来联盟将总决赛MVP奖杯命名为“比尔·拉塞尔杯”。
看到没?表格一出来,每个人都能指着某一列说自己是对的,但你真要选“第一人”,你得找那种每个维度都不差、而且在某些维度碾压的存在。
乔丹为什么被多数人认可是“第一人”?
我用golang的排序算法来类比:

你有个切片,里面有多个结构体,你要按“冠军数”排,拉塞尔第一;按“得分”排,贾巴尔第一;按“全面性”排,勒布朗第一,但乔丹这个结构体,它实现了多个排序接口——它在冠军数上排第二(6个),在得分上排第三,在MVP上排第三,在场均得分上排第一(30.1分历史第一),而且他的总决赛胜率是100%(6进6冠)。
这叫啥?这叫多维度聚合评分,就像gorm里搞多条件排序,优先级最高的那个字段是关键——“统治力”。
乔丹的统治力是写在脸上的,他拿了两个三连冠,中间还退役打棒球去了(这事儿放今天绝对被骂死,但人家回来又拿三连冠),他场均30.1分,历史第一,他拿了10个得分王,历史第一,他拿了6个总决赛MVP,历史第一,他防守端还拿了最佳防守球员——后卫拿这个奖的,历史上就他一个。
你说夸张不夸张?这数据放golang里,if 条件都写不过来。
勒布朗的支持者怎么说?
讲道理,勒布朗的数据也是很离谱的,总得分历史第一,而且还在涨,他的全能性——你没法用一个结构体描述他,他的字段是:Score int、Rebound int、Assist int,这三个字段每个都很大。
问题是,他的冠军数只有4个,总决赛战绩是4胜6负,这在“冠军决定论”的球迷眼里,是个硬伤,但如果你说“第一人”是指职业生涯的持久性和全面性,那勒布朗有理由拿这个title。
用golang的 reflect 包来看:你遍历勒布朗的职业生涯,每个赛季都能拿到25+7+7,这种稳定性,说句“goat(史上最佳)”也说得通。
那科比呢?贾巴尔?魔术师?
科比有5冠,81分,曼巴精神(这词都烂大街了),但他的MVP只有一个,这在他和乔丹、勒布朗的比较里,是个短板。
贾巴尔有6冠6MVP,总分第一,但他的时代跨度太大,荣誉分散,而且大部分人在评“第一人”时,会优先看年代——你看现在的年轻人,有几个看过贾巴尔打球?
魔术师有5冠,但他打得太短(HIV退役),累积数据不够。
我自己的结论(一个golang程序员的瞎琢磨)
如果你让我写个函数,判断“谁是第一人”,我的伪代码大概长这样:
func WhoIsTheGOAT(criteria string) string {
switch criteria {
case "champions":
return "Bill Russell"
case "scoring":
return "LeBron James"
case "avg_score":
return "Michael Jordan"
case "impact":
return "Michael Jordan"
case "longevity":
return "LeBron James"
default:
return "Michael Jordan"
}
}
明白了吗?默认返回值,是乔丹。 不是因为他所有维度都第一,而是因为他最重要的几个维度——场均得分、总冠军、总决赛统治力——加起来,综合排名最高。
而且说个冷知识:乔丹在公牛队的最后一场总决赛,对手是犹他爵士,他对位的是拜伦·拉塞尔(不是指环王那个),然后在比赛最后时刻,他来了个“the shot”——晃倒拉塞尔,命中绝杀,这画面,是多少人青春记忆里的顶点,数据可以复制,但那种“你明明知道他要这样打,却防不住”的神性,是代码写不出来的。
所以世界篮球第一人到底是谁?
你要是问我这golang写手,我是做不出绝对的排名的。第一人不是算法排出来的,是第一人称感受到的。 有的球迷看乔丹长大,有的看勒布朗长大,有的看科比长大,每个人心里的“第一人”就是自己青春里最强的那个。
但你要是必须让我选一个最接近共识的人,我会说:迈克尔·乔丹。
不是因为他的数据多完美(虽然数据也确实变态),而是因为只要提到篮球,全世界第一个想到的名字就是他,这就像golang里的 nil——大家都知道它很烦,但少了它,代码就没法玩,乔丹之于篮球,大概就是这种地位。
当然了,你非要说勒布朗,我也没意见,毕竟代码里的全局变量,每个人第一次启动都不太一样嘛。
本文来自作者[kyadmin]投稿,不代表678体育 - 全网热门体育赛事高清直播平台立场,如若转载,请注明出处:http://www.7oclockcapital.com/kj/1349.html
评论列表(4条)
我是678体育 - 全网热门体育赛事高清直播平台的签约作者“kyadmin”!
希望本篇文章《世界篮球第一人是谁?我用golang逻辑推理了一遍》能对你有所帮助!
本站[678体育 - 全网热门体育赛事高清直播平台]内容主要涵盖:678体育,678体育官网,678赛事直播
本文概览:先声明,我不是篮球专家,就是个写golang的程序员,但既然要用代码思维讨论“世界篮球第一人是谁”,我觉得这问题本质上就是个数据结构的选...