# -*- coding: utf-8 -*-
"""导出16位数学家小传 + 六维雷达数据为Word文档"""

from docx import Document
from docx.shared import Pt, Inches, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.style import WD_STYLE_TYPE
import json

doc = Document()

# ---- 样式设置 ----
style = doc.styles['Normal']
font = style.font
font.name = '等线'
font.size = Pt(11)
style.paragraph_format.space_after = Pt(6)
style.paragraph_format.line_spacing = 1.5

# 标题样式
for i in range(1, 4):
    h = doc.styles[f'Heading {i}']
    h.font.name = '等线'
    h.font.color.rgb = RGBColor(0x1E, 0x29, 0x3B)
    if i == 1:
        h.font.size = Pt(22)
    elif i == 2:
        h.font.size = Pt(16)
    else:
        h.font.size = Pt(13)

def add_para(text, bold=False, size=None, color=None, alignment=None):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.font.name = '等线'
    run.bold = bold
    if size: run.font.size = Pt(size)
    if color: run.font.color.rgb = color
    if alignment: p.alignment = alignment
    return p

def add_radar_table(data):
    """添加六维雷达数据表格"""
    table = doc.add_table(rows=1, cols=2)
    table.style = 'Light Grid Accent 1'
    hdr = table.rows[0].cells
    hdr[0].text = '维度'
    hdr[1].text = '数值'
    for d in data:
        row = table.add_row().cells
        row[0].text = d['name']
        val = d['value']
        row[1].text = f"{'█' * (val//10)}{'░' * (10-val//10)}  {val}"
    doc.add_paragraph()

# 数据
mathematicians = {
    "信仰者": {
        "desc": "把数学当信仰的人——不为名不为利，只为真理本身",
        "members": [
            {
                "name": "高斯 · 定理工匠", "title": "数学王子", "era": "1777-1855，德国", "color": "#4A90D9",
                "radar": [
                    {"name": "严谨演绎", "value": 98}, {"name": "直觉洞察", "value": 90},
                    {"name": "原始创造", "value": 95}, {"name": "钻研耐力", "value": 92},
                    {"name": "传播布道", "value": 40}, {"name": "实战应用", "value": 75}
                ],
                "special": "极机型：严谨98 · 盲区：传播40 · 必杀技：完美证明",
                "motto": "他不出手则已，一出手就是一篇完美的证明",
                "bio": """高斯3岁纠正父亲的工资账目，10岁秒算1到100——这些故事太著名了，以至于听起来像传说。但真正体现高斯钻研精神的，是他19岁那年做的一件事。

欧几里得以来两千年，没人能用尺规作出正十七边形。19岁的高斯坐在哥廷根大学的宿舍里，花了一整夜，证明了这个作图是可能的，并且给出了精确的作图方法。这不是"灵光一闪"的天才故事——他花了整整一夜，在纸上反复推演，一步一步逼近那个隐藏在圆背后的优雅结构。

他一生以此为傲。遗嘱里唯一的要求：在墓碑上刻正十七边形。后来工匠说"太难刻了，看起来跟圆没区别"，但没有这句话更准确了——高斯的钻研，外人根本看不出跟普通努力有什么区别。

他在微分几何中定义了高斯曲率，让曲面第一次有了可量化的"弯曲度"；他发明最小二乘法，让数据中的噪声第一次有了数学上的最优解；正态分布至今仍是一切统计推断的起点。但他最震撼的事迹，是一件"没有发表"的事。

高斯的书信里藏着秘密：他大概在1817年就发现了非欧几何——一个完全不同于欧几里得的几何体系，在那里三角形内角和不等于180度，平行线会相交。但他一个字都没发表。理由是什么？他在给朋友的信中写道："我怕惊扰了那些蠢人的蜂巢。"

他怕被别人骂，于是他选择不发表。整整30年。30年后，俄国人罗巴切夫斯基和匈牙利人鲍耶分别独立发表了非欧几何，成为"发现者"。高斯没有争辩，他的钻研从来不为"优先权"——他为的是自己心里那条完美的逻辑链条。

这就是定理工匠：他不出手则已，一出手就是一篇完美的证明。至于别人知不知道？那是别人的事。"""
            },
            {
                "name": "祖冲之 · 穷竭守尺人", "title": "算不烂的守尺人", "era": "429-500，中国南朝", "color": "#C47F3A",
                "radar": [
                    {"name": "严谨演绎", "value": 90}, {"name": "直觉洞察", "value": 65},
                    {"name": "原始创造", "value": 70}, {"name": "钻研耐力", "value": 100},
                    {"name": "传播布道", "value": 55}, {"name": "实战应用", "value": 85}
                ],
                "special": "极机型：钻研100 · 盲区：直觉65 · 必杀技：算筹穷竭",
                "motto": "他不知道自己算对了没有，因为没人比他更准",
                "bio": """南北朝是什么时代？战乱、分裂、人命如草。祖冲之在这样的时代里，坐在一盏油灯下，手边一堆小木棍——叫算筹——一根一根摆来摆去，一算就是大半辈子。

他要算一个数字：圆周率 π。

他把π算到了3.1415926到3.1415927之间。你可能会想：这有什么？现在计算机一秒钟能算几百万位。但你要知道，祖冲之用的是算筹——一种靠在地面上摆弄小棍来进行的计算方式。他没有计算器，没有纸笔（当时的纸又贵又粗），连像样的书桌都没有。他就蹲在地上，摆出几万根算筹，记录中间结果，错了重来——而且他永远不知道自己的答案是不是"对的"，因为没有人比他算得更准。

他算了多久？史书没写。但那个精度——3.1415926——一千一百多年后才被打破。

他还给出了密率 355/113。这个分数之美，令人窒息：分母113，分子355，恰好取自113355这六位数。一个简洁到不像手算时代的产物，欧洲人直到16世纪才重新发现它。

他同时也是一流的工程师和天文学家。他制定了《大明历》，测算出回归年仅差46秒；他改良了指南车——一种靠齿轮传动保持方向的机械装置，在战场上用来辨别方位。在他留下的文字里，天文、历法、数学、机械浑然一体——在那个时代，真正的钻研者不分文理。

他用算筹对抗时间。一千年后，世上还有人记得他算的那个数。这不是因为他比天才更天才——是因为他愿意花一辈子，把一件事算到最准。"""
            },
            {
                "name": "欧拉 · 公式狂僧", "title": "数学史上的永动机", "era": "1707-1783，瑞士/俄国", "color": "#C47F3A",
                "radar": [
                    {"name": "严谨演绎", "value": 88}, {"name": "直觉洞察", "value": 85},
                    {"name": "原始创造", "value": 98}, {"name": "钻研耐力", "value": 100},
                    {"name": "传播布道", "value": 85}, {"name": "实战应用", "value": 80}
                ],
                "special": "极机型：钻研100+创造98 · 盲区：无（六边形战士） · 必杀技：永动口述",
                "motto": "停止计算的那一刻，才是停止生命的那一刻",
                "bio": """数学史上最高产的人是谁？欧拉。886篇论文，死后留下的手稿还够出版50年。但这不是最惊人的。

28岁，右眼失明。59岁，双目全盲。欧拉说："视力没了，心里的数学更清楚了。"他不是在说漂亮话——失明之后，他的产出翻倍了。全部靠心算，口述，让助手誊写。

想象一下：一个盲人在脑海里推演复杂的微积分、微分方程、无穷级数，不需要纸，不需要黑板，甚至不需要看到任何符号——整个推导过程在大脑中像流水一样流过。他的家人说，他常抱着刚出生的婴儿，腿上放着一沓稿纸，一边哄孩子一边口述定理。13个孩子，5个存活，家中的吵闹可想而知——但他算进去了。

柯尼斯堡有七座桥，当地的市民有一个奇怪的爱好——散步时能不能每座桥只走一次？欧拉听了这个问题，觉得很有趣。他没有画图——他发明了图论。他把桥变成线，把陆地变成点，把整个城市变成一幅图。他证明了这件事不可能做到，然后顺手定义了一个全新的数学领域。今天你用的导航、你刷的社交网络、你坐的高铁调度——底层都有图论的影子。

另一次，他写下了 e^(iπ) + 1 = 0。就这么短，但里面装了数学里最重要的五个常数——e、i、π、1、0。后人称之为"最美数学公式"。而他写下它的时候，不过是某一天推演到一半，随手记下来的。

函数符号 f(x)、圆周率 π、自然常数 e、虚数单位 i、求和符号 ∑——这些沿用至今的数学记号，都是欧拉定的。不是因为他想"建立一套符号体系"，而是因为他写的论文太多了，不得不想出一套方便的简写。他顺手就定义了整个数学界的通用语言。

这就是公式狂僧：他不是因为"想赢"才写论文，而是因为停不下来。数学不是他的职业，是他的呼吸。"""
            },
            {
                "name": "诺特 · 抽象代数宗师", "title": "抽象代数之母", "era": "1882-1935，德国", "color": "#8E5EA0",
                "radar": [
                    {"name": "严谨演绎", "value": 95}, {"name": "直觉洞察", "value": 92},
                    {"name": "原始创造", "value": 95}, {"name": "钻研耐力", "value": 95},
                    {"name": "传播布道", "value": 85}, {"name": "实战应用", "value": 70}
                ],
                "special": "极机型：严谨95 · 盲区：应用70 · 必杀技：结构之眼",
                "motto": "被否定三次，数学还是站在她这边",
                "bio": """数学史上被否定最多次的人，大概就是诺特。

她是女人——在20世纪初的德国大学里，女性连旁听资格都没有。她靠自学考过了所有课程，终于被允许参加考试，获得了博士学位。然后呢？没有学校肯雇她。

她的父亲是数学教授，私下资助她在哥廷根大学"义务讲课"——没有头衔、没有薪酬、没有办公室。一教就是好几年。这期间她创立了"诺特学派"，学生自发挤满她的课堂，这些人后来统治了现代代数学。但学校依然不给薪水。第一次否定。

她研究的抽象代数，在当时的数学家看来"几乎不属于数学"——太抽象了，连符号都看不懂。有人嘲讽说："这跟数学有什么关系？她到底在研究什么？"第二次否定。

1915年她证明了诺特定理——物理学中每一种对称性，都对应一个守恒定律。能量守恒对应时间平移对称性，动量守恒对应空间平移对称性。这个定理是现代物理学的基石，没有它，杨振宁的规范场论无从出发。爱因斯坦亲自写信为她争取教职，称她为"自女性接受高等教育以来最杰出的数学天才"。第三次否定，破开了。

她最终拿到了教授职位——但四年后就因纳粹政策被驱逐。她去了美国，又在短短几年内培养了一批新的弟子，直到53岁因手术并发症去世。

被否定三次，她还是把最抽象的数学，讲得连门外汉都想入门。她的钻研不需要任何人来认证——因为数学永远站在她这边。"""
            }
        ]
    },
    "传播者": {
        "desc": "把数学当语言的人——让不懂数学的人也能看见数学之美",
        "members": [
            {
                "name": "斐波那契 · 商路算郎", "title": "东西方数学的翻译者", "era": "约1170-1250，意大利", "color": "#B8956E",
                "radar": [
                    {"name": "严谨演绎", "value": 75}, {"name": "直觉洞察", "value": 70},
                    {"name": "原始创造", "value": 65}, {"name": "钻研耐力", "value": 70},
                    {"name": "传播布道", "value": 98}, {"name": "实战应用", "value": 85}
                ],
                "special": "极机型：传播98 · 盲区：创造65 · 必杀技：跨海翻译",
                "motto": "他学数学不是为了自己懂，是为了让别人也懂",
                "bio": """13世纪的欧洲，算账还在用罗马数字。你试试用 VII 乘以 XLII——光把这两个字写在纸上就要想半天。当时欧洲的商人记账是噩梦。

斐波那契是一个意大利商人的儿子，从小跟着父亲在北非经商。在阿尔及利亚、埃及、叙利亚的集市上，他第一次看到了阿拉伯数字——0、1、2、3……一个来自印度、被阿拉伯人传播的计数系统。他用这些数字算了一笔账，立刻意识到：如果欧洲人能学会这套数字，做生意的速度快十倍。

于是他写了一本书，叫《算盘书》。把阿拉伯数字和十进制计数法系统引入欧洲。这本书里几乎每一道例题都是商业场景：利润分摊、货币兑换、货物计量。他没有创造什么新定理——他只是从一个文明把工具搬运到了另一个文明。

但在这本书里有一道不起眼的练习题：假设一对兔子每月生一对小兔子，小兔子两个月后也能生——一年后有多少对兔子？答案是 1, 1, 2, 3, 5, 8, 13, 21……后来人们发现，这个数列无处不在：松果的螺旋、向日葵的种子排列、鹦鹉螺的壳——都藏着它。

斐波那契本人大概从没想过"兔子问题"会变成他的名片。他只是一个在东西方之间来回走动的商人，看见了好工具，就把它翻译过来，讲给需要的人听。"""
            },
            {
                "name": "华罗庚 · 双法布道者", "title": "数学的布道者", "era": "1910-1985，中国", "color": "#C47F3A",
                "radar": [
                    {"name": "严谨演绎", "value": 85}, {"name": "直觉洞察", "value": 80},
                    {"name": "原始创造", "value": 85}, {"name": "钻研耐力", "value": 88},
                    {"name": "传播布道", "value": 100}, {"name": "实战应用", "value": 95}
                ],
                "special": "极机型：传播100 · 盲区：无 · 必杀技：优选法落地",
                "motto": "把数学从大学讲台，讲到了田间地头",
                "bio": """华罗庚左腿残疾、初中学历、杂货铺出身。这三个标签放在任何时代，都意味着"不可能成为数学家"。但他自学了《微积分》《数论》，22岁时在上海《科学》杂志发表了论文，被清华数学系主任熊庆来发现而引介破格入清华。后来去了剑桥，回国，成为一代数论大师。

但华罗庚最令人震撼的选择，发生在功成名就之后。

他不坐书斋了。他揣着粉笔，走遍中国23个省市区——不是去开学术会议，是去工厂、农村、矿山。给钢铁工人讲"如何用最少的实验次数找到最佳配方"（优选法），给工程队讲"如何安排工序让施工最快完成"（统筹法）。

一个顶级数论学家，选择把数学翻译成每个人都能用上的语言。走到哪里讲到哪。黑板上的内容不再是抽象公式，而是泡茶的顺序、烧菜的火候。他把"优选法"翻译成了你能秒懂的版本："你拿一个篮球投三分，距离越近命中率越高，但不是你站篮筐底下就能百分百——你得找一个最佳距离。"

1985年，他在东京大学做完一场学术报告后心脏病发作，倒在讲台上。他说的最后一句话是："我要工作到生命的最后一刻。"

他一生的动力不是超越别人，是让更多人看见数学。这比任何一篇论文都更需要耐心和信念。"""
            },
            {
                "name": "伽罗瓦 · 决斗狂热者", "title": "浪漫主义数学的殉道者", "era": "1811-1832，法国", "color": "#3D7A6E",
                "radar": [
                    {"name": "严谨演绎", "value": 80}, {"name": "直觉洞察", "value": 98},
                    {"name": "原始创造", "value": 100}, {"name": "钻研耐力", "value": 70},
                    {"name": "传播布道", "value": 80}, {"name": "实战应用", "value": 50}
                ],
                "special": "极机型：创造100 · 盲区：应用50 · 必杀技：决斗前夜的信",
                "motto": "我没有时间了",
                "bio": """伽罗瓦只活了20岁。

17岁，他奠定了群论的基础。这是一个全新的代数学分支——在此之前没有人想过"对称性可以变成一门数学语言"，但伽罗瓦做到了。他将方程的可解性转化为群的结构问题，彻底改变了代数学的面貌。

但他的论文投出去，被退回。没有大学肯收他。他的老师看不懂他在写什么。他的父亲被政治迫害而自杀。他想革命，进了监狱。

1832年5月29日，他卷入了一场因情感纠葛引发的决斗。谁也不知道对方是谁、为了什么——只知道第二天天亮，他和对手会各自开枪。

他做了一个疯狂的决定。

决斗前夜，他没有睡觉。他坐下来，开始疯狂写信——写给朋友，写给数学界，写给未来。他把群论的完整思想塞进了一封长信里，在纸页空白处匆匆写道："我没有时间了。"

然后拂晓，他去决斗。第二天，他死了。

这封信被他的弟弟保存了14年，才被数学家刘维尔发现。刘维尔读完震惊了——这个20岁的孩子，在生命最后一夜，把一种全新的数学思维方式扔给了未来。

今天，"伽罗瓦理论"是每个数学系研究生的必修课。五次及以上方程为什么没有通用根式解？伽罗瓦用群论回答了这个问题，终结了一个困扰数学家近300年的悬案。

他用死亡完成了最后一次传播。把真理寄给未来。"""
            },
            {
                "name": "Ada Lovelace · 织机先知", "title": "史上第一位程序员", "era": "1815-1852，英国", "color": "#9B4D73",
                "radar": [
                    {"name": "严谨演绎", "value": 75}, {"name": "直觉洞察", "value": 98},
                    {"name": "原始创造", "value": 90}, {"name": "钻研耐力", "value": 60},
                    {"name": "传播布道", "value": 85}, {"name": "实战应用", "value": 75}
                ],
                "special": "极机型：直觉98 · 盲区：钻研60 · 必杀技：注释三倍",
                "motto": "分析机编织代数图案，就像提花织机编织花朵和叶子",
                "bio": """Ada的父亲是拜伦——写"如果我们不再相见，祝你早安、午安、晚安"的那个浪漫主义诗人。她母亲怕她像父亲一样"疯"，从小就让她学数学。母亲说：数学是最好的镇静剂，能把人绑在理性上。

但Ada在数学里看见的不是镇静，而是巨大的想象力。

1843年，28岁的她翻译了一篇关于巴贝奇"分析机"的论文。分析机是一台机械计算器，由齿轮和杠杆驱动——从未被造出来过。Ada觉得原文不够好，便在翻译时附上了自己的"注释"。

这些注释比原文长了三倍。

在这些注释里，她做了两件划时代的事。第一，她写出了计算伯努利数的完整步骤——今天被公认为人类历史上第一个计算机程序。在分析机还不存在的年代，她已经为不存在的机器编程了。第二，她提出了一个当时没人想到的观点：计算机不仅能算数，还能作曲、画画、处理任何可以用符号表示的东西。她写道："分析机编织代数图案，就像提花织机编织花朵和叶子。"

她看到的不是一台超级计算器，而是一台通用符号处理器——这个洞见比第一台电子计算机出现早了整整一百年。

她36岁死于子宫癌。她的名字今天被用来命名了Ada编程语言。每年十月第二个星期二是"Ada Lovelace日"。

她翻译了一篇论文，顺手发明了"编程"这个概念。"""
            }
        ]
    },
    "应用者": {
        "desc": "把数学当工具的人——用数学解决真实世界的问题",
        "members": [
            {
                "name": "秦九韶 · 大衍谋士", "title": "数学世界的谋士", "era": "1208-1268，中国南宋", "color": "#3A6B8C",
                "radar": [
                    {"name": "严谨演绎", "value": 78}, {"name": "直觉洞察", "value": 75},
                    {"name": "原始创造", "value": 85}, {"name": "钻研耐力", "value": 65},
                    {"name": "传播布道", "value": 50}, {"name": "实战应用", "value": 95}
                ],
                "special": "极机型：应用95 · 盲区：传播50 · 必杀技：大衍求一",
                "motto": "数学不是信仰，是武器",
                "bio": """南宋是中国历史上最畸形的时代之一：文明高度发达，同时外部威胁步步紧逼。秦九韶就是一个典型的南宋"全才"——精通数学、音律、建筑、诗文、带兵打仗。

他写了一本书叫《数书九章》，里面有81道应用题。不是抽象证明，是真实世界的数学：田亩测算、建筑工程、钱粮折算、军需调度。他提出了"大衍求一术"——今天叫中国剩余定理——用来解决"一个数除以三余二、除以五余三、除以七余二，这个数是多少"这类问题。这东西在今天被用于密码学，保护你在网上输入的每一行密码。

但他的手不只握过笔。

史书记载，秦九韶"性机巧、好奢侈"，曾因私人恩怨毒杀亲信，也用自己设计的计算模型帮助官府平定叛乱。他的数学既能计算粮草，也能决定生死。他是一个什么样的人？数学家说他空前绝后，史官说他品行不端。这两个评价，可能都对。

这正是大衍谋士的本质：数学不是信仰，不是美，是工具。可以用来造福，也可以用来杀人。他从未假装自己纯洁。"""
            },
            {
                "name": "牛顿 · 宇宙立法者", "title": "宇宙的立法者", "era": "1643-1727，英国", "color": "#3A6B8C",
                "radar": [
                    {"name": "严谨演绎", "value": 85}, {"name": "直觉洞察", "value": 98},
                    {"name": "原始创造", "value": 100}, {"name": "钻研耐力", "value": 90},
                    {"name": "传播布道", "value": 50}, {"name": "实战应用", "value": 95}
                ],
                "special": "极机型：创造100 · 盲区：传播50 · 必杀技：苹果坠落",
                "motto": "他统一了天地，却统一不了自己",
                "bio": """1665年，伦敦大瘟疫，剑桥大学关门。22岁的牛顿回到家乡伍尔斯索普庄园躲瘟疫。在接下来的18个月里，他一个人完成了：微积分的发明、万有引力定律的雏形、用棱镜分解白光的光学实验。数学史上最孤独、也最高产的一次隔离。

1687年，他出版了《自然哲学的数学原理》。三条运动定律加万有引力定律，人类第一次用一套方程统一了天上和地上的一切运动——行星为什么绕着太阳转、苹果为什么掉下来、潮汐为什么涨落，全归入了同一套公式。这是人类智力史上最伟大的单项成就。

但牛顿的另一面同样疯狂。

他与莱布尼茨争夺微积分优先权。利用皇家学会会长的职权，他组了一个调查委员会，自己起草了调查报告，判定莱布尼茨抄袭——然后以皇家学会的名义宣布："经过独立调查，认定牛顿是微积分的唯一发明者。"他自己判自己胜诉。

晚年他沉迷炼金术和神学，试图用数学推算出上帝创世的日期。他留下的神学手稿比科学手稿还多，超过三百万字。他一生未婚。据说他晚年曾说："我不知道我在世人眼里是什么——在我自己眼里，我只不过是一个在海滩上玩耍的孩子，偶尔捡到一块更光滑的石子。"

这就是宇宙立法者：他用数学征服了世界，却从未和自己和解。"""
            },
            {
                "name": "图灵 · 密码破译使", "title": "数字世界的破译者", "era": "1912-1954，英国", "color": "#2D6A4F",
                "radar": [
                    {"name": "严谨演绎", "value": 88}, {"name": "直觉洞察", "value": 95},
                    {"name": "原始创造", "value": 95}, {"name": "钻研耐力", "value": 85},
                    {"name": "传播布道", "value": 70}, {"name": "实战应用", "value": 98}
                ],
                "special": "极机型：应用98 · 盲区：传播70 · 必杀技：Bombe解密",
                "motto": "他拯救了世界，世界把他碾碎了",
                "bio": """24岁，图灵发表了一篇论文《论可计算数》。在这篇论文里，他想象了一台"永远不存在的机器"——一条无限长的纸带、一个可以读写符号的装置、一套简单的状态转换规则。他证明了：这台最简单的假想机器，能计算任何可以被计算的东西。他用这台"图灵机"定义了"计算"本身。冯·诺依曼后来说，现代计算机架构里最关键的概念——"存储程序"——就来自图灵这篇论文。

然后二战来了。德国人用了Enigma密码机——每天换一种加密方式，数量级大到手算永远破不了。图灵去了布莱切利庄园，和一群数学家、象棋冠军、填字游戏冠军一起，设计了一台叫Bombe的解密机。他们破译了Enigma。

历史学家的共识是：这让二战提前两年结束，至少拯救了1400万人的生命。

战后，图灵的贡献成为国家机密，封存了三十年。公众不知道他做过什么。1952年，他因同性恋被定罪，被迫接受化学阉割。两年后，他咬下一口涂了氰化物的苹果，去世。41岁。2013年，英国女王颁布皇家赦免。2019年，他登上了新版50英镑纸币。

他的数学拦住了纳粹。他的国家没拦住偏见。这两个事实叠加在一起，比任何单独的悲剧或英雄叙事，都更沉重。"""
            },
            {
                "name": "冯·诺依曼 · 博弈游侠", "title": "游走在数学、物理、计算之间的全才", "era": "1903-1957，匈牙利/美国", "color": "#3A6B8C",
                "radar": [
                    {"name": "严谨演绎", "value": 85}, {"name": "直觉洞察", "value": 90},
                    {"name": "原始创造", "value": 95}, {"name": "钻研耐力", "value": 80},
                    {"name": "传播布道", "value": 85}, {"name": "实战应用", "value": 100}
                ],
                "special": "极机型：应用100 · 盲区：无（最均衡全才） · 必杀技：核威慑矩阵",
                "motto": "棋太简单了",
                "bio": """冯·诺依曼6岁能心算八位数除法，还会跟他爸开玩笑说："你的账目少了一分钱。"8岁掌握微积分，22岁拿下博士学位。然后他开始在完全不同的领域之间跳来跳去，每一个都留下一座里程碑。

他创立了博弈论。用数学框架分析"人在对抗中如何决策"——《博弈论与经济行为》成为经济学、政治学、军事战略的圣经。冷战期间的核威慑理论——美苏双方都知道对方有核弹、都知道对方知道自己有核弹——这层层嵌套的"我知道你知道"就出自博弈论的矩阵。

他加入曼哈顿计划，设计了原子弹内爆的数学模型。不是造炸弹——是用方程算爆炸。

他回到计算领域，写了一篇论文叫《关于EDVAC的报告》，定义了现代计算机的基本架构：控制器、运算器、存储器、输入输出——这个"冯·诺依曼架构"至今仍是一切电脑的基石。你现在读到这篇文章，底层的CPU就是这个架构的后代。

有人问他："你研究博弈论，是不是因为你喜欢下棋？"他回答："不。我研究博弈论是为了理解核威慑。棋太简单了。"

这就是博弈游侠：把世界当成一盘棋，而且他每一盘都赢了。"""
            }
        ]
    },
    "直觉者": {
        "desc": "把数学当直觉的人——看见别人看不见的结构与联系",
        "members": [
            {
                "name": "希帕提娅 · 几何殉道者", "title": "古典数学的最后一道光", "era": "约350-415，埃及亚历山大城", "color": "#D4A574",
                "radar": [
                    {"name": "严谨演绎", "value": 85}, {"name": "直觉洞察", "value": 88},
                    {"name": "原始创造", "value": 60}, {"name": "钻研耐力", "value": 90},
                    {"name": "传播布道", "value": 88}, {"name": "实战应用", "value": 80}
                ],
                "special": "极机型：钻研90 · 盲区：创造60 · 必杀技：理性之光",
                "motto": "她不是在做题，她是在为理性殉道",
                "bio": """希帕提娅是历史上第一位有记载的女数学家。她生活在公元4世纪的亚历山大城——彼时罗马帝国已经皈依了基督教，古典希腊文化正在被系统地清除。而亚历山大城依然是古代世界知识的最后堡垒：它的大图书馆里藏着希腊、埃及、巴比伦的所有智慧。

希帕提娅继承了父亲泰昂的学术衣钵，在亚历山大的学院讲授柏拉图、亚里士多德、欧几里得。她是新柏拉图学派的领袖，学生从帝国各地慕名而来。她改良了星盘和比重计——星盘用来测量天体高度和纬度，比重计用来测液体密度——这两种仪器被后人沿用了1400多年。

但她的位置太危险了：一个异教徒、一个女人、一个公开讲学的人、一个在宗教冲突中保持理性中立的人。415年，一群被主教煽动的暴民把她从马车上拖下来，拖进教堂，用陶片活活刮死，然后把她的尸体撕碎、焚烧。

她死后，亚历山大图书馆被毁，古典希腊数学随之终结。希帕提娅的被杀被视为"古典时代的终结"标志之一——从那天起，黑暗时代开始了。

她不是在做题，她是在为理性殉道。人类杀死她的同时，杀死了自己保存了七百年的知识体系。"""
            },
            {
                "name": "赵爽 · 弦图先觉", "title": "数学的视觉诗人", "era": "约公元3世纪，中国三国时期", "color": "#D4A574",
                "radar": [
                    {"name": "严谨演绎", "value": 70}, {"name": "直觉洞察", "value": 100},
                    {"name": "原始创造", "value": 75}, {"name": "钻研耐力", "value": 65},
                    {"name": "传播布道", "value": 75}, {"name": "实战应用", "value": 60}
                ],
                "special": "极机型：直觉100 · 盲区：钻研65 · 必杀技：弦图无字",
                "motto": "一张图，比十本书都长寿",
                "bio": """赵爽只留下了一部作品：《周髀算经注》。他只注了一本书。

但就在这本书里，他做了一件让整个数学史惊叹的事。

勾股定理——直角三角形两直角边的平方和等于斜边的平方——如何证明？赵爽没有写长篇大论。他画了一张图："弦图"。

在一个正方形里，用四个直角三角形拼出一个中间的小正方形。然后他写了一句话："按弦图，又可以勾股相乘为朱实二，倍之为朱实四，以勾股之差自相乘为中黄实，加差实亦成弦实。"

翻译成现代话：看看这张图，你就看见了。

他让历史上最难解释的定理之一，变成了一张"看一眼就懂"的图。这不是因为他的推导简单——恰恰相反，能用一张图让人"看见"一个复杂的真理，需要比写出十页证明更深的直觉。

2002年，国际数学家大会的会徽选取了赵爽的弦图。1800年后，全世界数学家公认：这张图是人类数学史上最美的证明之一。

这就是弦图先觉：不是算出来的，是看出来的。一张图，比十本书都长寿。"""
            },
            {
                "name": "庞加莱 · 拓扑游方", "title": "最后一位数学全才", "era": "1854-1912，法国", "color": "#5BA0B5",
                "radar": [
                    {"name": "严谨演绎", "value": 75}, {"name": "直觉洞察", "value": 100},
                    {"name": "原始创造", "value": 95}, {"name": "钻研耐力", "value": 80},
                    {"name": "传播布道", "value": 80}, {"name": "实战应用", "value": 65}
                ],
                "special": "极机型：直觉100 · 盲区：应用65 · 必杀技：高维漫步",
                "motto": "他在高维空间里漫步，而我们还在二维纸上画图",
                "bio": """庞加莱是公认的"最后一位通晓当时所有数学分支的人"。在他之后，数学变得太过庞大，再也没有一个人能掌握全部。

他的几何直觉惊世骇俗。有一次，庞加莱在准备一次关于富克斯函数的演讲时，花了几个月苦思冥想找不到突破口。然后某一天，他刚踏上一辆公交车的台阶——据他自己回忆——突然就"看见"了富克斯函数与双曲几何之间的联系。不是推算出来的，是他"看见"的。他在上车的一瞬间，整个结构在大脑中浮现了。

这不是一个关于"天才"的故事——这是一个关于"用身体感受数学"的故事。庞加莱在回忆录中写道："我停下来，继续和车上的人说话，但心里知道我已经抓住了答案。我甚至没有马上把它写下来——我知道它不会再跑掉了。"

他提出的"庞加莱猜想"：如果一个三维闭曲面上的每一条闭曲线都能缩成一个点，那么这个曲面就是一个三维球面。这个猜想困扰了数学界整整100年，直到2003年才被俄罗斯数学家佩雷尔曼证明。而佩雷尔曼证明它之后，拒绝了菲尔兹奖和一百万美元的千禧年大奖，退出了公众视野——用庞加莱式的姿态，转身离开。

这就是拓扑游方：他们在高维空间里漫步，而我们还在二维纸上画图。"""
            },
            {
                "name": "凯瑟琳·约翰逊 · 人脑计算机", "title": "NASA的人脑计算机", "era": "1918-2020，美国", "color": "#2D6A4F",
                "radar": [
                    {"name": "严谨演绎", "value": 85}, {"name": "直觉洞察", "value": 95},
                    {"name": "原始创造", "value": 60}, {"name": "钻研耐力", "value": 100},
                    {"name": "传播布道", "value": 75}, {"name": "实战应用", "value": 100}
                ],
                "special": "极机型：钻研100+应用100 · 盲区：创造60 · 必杀技：人脑校准",
                "motto": "她的直觉是30年一笔一笔算出来的",
                "bio": """凯瑟琳·约翰逊在NASA干了33年，用纸笔和计算尺手算弹道。

1961年，美国第一次载人航天飞行。宇航员艾伦·谢泼德坐进火箭——他是一流的飞行员，但他不信任那台刚引进的IBM计算机。他在发射前说了一句话："让那个女孩核对一下数字。"

"那个女孩"就是凯瑟琳·约翰逊。她用的工具是：纸、铅笔、计算尺。一步一个数字，从头算到尾。她算对了。谢泼德飞了。

1962年，约翰·格伦要上轨道了。这次弹道计算已经在IBM上跑过了，但格伦在发射前点名："让她重新手算一遍——她说行，我就飞。"凯瑟琳的手算轨道确认了IBM的结果。格伦成了美国第一个绕地球飞行的宇航员。

她和一群被称为"穿着裙子的计算机"的黑人女性数学家们，在种族隔离的年代，坐在NASA的"有色人种计算部"里，用人脑完成了阿波罗登月的轨道计算。

但凯瑟琳最让人震撼的不是她的计算速度——而是她的直觉。33年不间断的手算，让她对数字形成了一种近乎本能的判断力。她的同事说："我们看一张弹道轨迹图，只看得到一堆数字。凯瑟琳看同一张图，她说——这个数不对。"不是算出来的——是感觉出来的。但这种感觉，是33年每天8小时一笔一笔磨出来的。

2020年她101岁辞世。她的一生恰好穿越了计算从纸笔走向AI的整个世纪——她既是纸笔计算的终点，也是数字时代的起点。"""
            }
        ]
    }
}


# ==================== 开始写入 ====================

# 封面页
doc.add_paragraph()
add_para('数学人格测试', bold=True, size=28, color=RGBColor(0x1E, 0x29, 0x3B), alignment=WD_ALIGN_PARAGRAPH.CENTER)
add_para('MathBTI · 16位数学家小传', bold=True, size=16, color=RGBColor(0x5B, 0x6A, 0xF0), alignment=WD_ALIGN_PARAGRAPH.CENTER)
add_para('12题发现你的数学人格类型', size=12, color=RGBColor(0x94, 0xA3, 0xB8), alignment=WD_ALIGN_PARAGRAPH.CENTER)
add_para('葫芦数学 · Hulu Math', size=12, color=RGBColor(0x94, 0xA3, 0xB8), alignment=WD_ALIGN_PARAGRAPH.CENTER)
doc.add_page_break()

# 目录提示
add_para('目 录', bold=True, size=16, color=RGBColor(0x1E, 0x29, 0x3B), alignment=WD_ALIGN_PARAGRAPH.CENTER)
add_para('')
for clan_name in ["信仰者", "传播者", "应用者", "直觉者"]:
    clan = mathematicians[clan_name]
    add_para(f'第{"一二三四"[["信仰者","传播者","应用者","直觉者"].index(clan_name)]}族 · {clan_name} —— {clan["desc"]}', size=11)
    for m in clan["members"]:
        add_para(f'    {m["name"]}', size=10, color=RGBColor(0x64, 0x74, 0x8B))
    add_para('')
doc.add_page_break()

# 正文
for clan_idx, (clan_name, clan) in enumerate(mathematicians.items()):
    # 族群封面页
    clan_num = '一二三四'[clan_idx]
    doc.add_paragraph()
    add_para(f'第{clan_num}族', bold=True, size=14, color=RGBColor(0x5B, 0x6A, 0xF0), alignment=WD_ALIGN_PARAGRAPH.CENTER)
    add_para(f'{clan_name}', bold=True, size=26, alignment=WD_ALIGN_PARAGRAPH.CENTER)
    add_para(clan["desc"], size=13, color=RGBColor(0x64, 0x74, 0x8B), alignment=WD_ALIGN_PARAGRAPH.CENTER)
    doc.add_paragraph()

    for m in clan["members"]:
        # 分割线
        doc.add_paragraph('─' * 50)

        # 标题
        add_para(m["name"], bold=True, size=16, color=RGBColor(0x1E, 0x29, 0x3B))

        # 人物档案
        add_para(f'称号：{m["title"]}　|　年代：{m["era"]}', size=10, color=RGBColor(0x64, 0x74, 0x8B))
        add_para(f'必杀技：{m["special"].split("·")[-1].strip()}　|　签语：{m["motto"]}', size=10, color=RGBColor(0x64, 0x74, 0x8B))

        doc.add_paragraph()

        # 六维雷达数据
        add_para('【六维雷达卡】', bold=True, size=11)
        for rd in m["radar"]:
            val = rd["value"]
            bar = '█' * (val // 10) + '░' * (10 - val // 10)
            add_para(f'  {rd["name"]:　<6}  {bar}  {val}', size=10)
        doc.add_paragraph()

        # 能力说明
        add_para(m["special"], size=9, color=RGBColor(0x94, 0xA3, 0xB8))
        doc.add_paragraph()

        # 小传正文
        add_para('【人物小传】', bold=True, size=11)
        for para in m["bio"].strip().split('\n\n'):
            add_para(para.strip(), size=11)

        doc.add_paragraph()

    # 族群结束，非最后一族加换页
    if clan_idx < 3:
        doc.add_page_break()

# 总览表
doc.add_page_break()
add_para('族群总览', bold=True, size=18, alignment=WD_ALIGN_PARAGRAPH.CENTER)
doc.add_paragraph()

overview_table = doc.add_table(rows=5, cols=7)
overview_table.style = 'Light Grid Accent 1'

headers = ['族群', '特质', '代表人物', '严谨', '直觉', '创造', '钻研', '传播', '应用']
# Fix: we have 7 columns but 9 headers? Let me recount. The rows=5, cols=7 would need 7 headers.
# Actually, let me simplify - just make a proper table.

# Let me replace with a simpler approach
doc.add_paragraph()

# Simple summary
for clan_name in ["信仰者", "传播者", "应用者", "直觉者"]:
    clan = mathematicians[clan_name]
    members_str = '、'.join([m["name"].split('·')[0].strip() for m in clan["members"]])
    add_para(f'{clan_name}：{clan["desc"]}', bold=True, size=11)
    add_para(f'成员：{members_str}', size=10, color=RGBColor(0x64, 0x74, 0x8B))
    add_para('')

# 页尾
doc.add_paragraph('─' * 50)
add_para('葫芦数学 · MathBTI · 12题发现你的数学灵魂', size=10, color=RGBColor(0x94, 0xA3, 0xB8), alignment=WD_ALIGN_PARAGRAPH.CENTER)

# 保存
output_path = r'c:\Users\YZS\Desktop\new\data\novel\数学人格测试_16位数学家小传.docx'
doc.save(output_path)
print(f'文档已导出至: {output_path}')
