#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
生成第六章平面向量及其应用的完整题目列表
"""

import json
import re

def generate_problem_list():
    """生成完整的题目列表"""

    # 题目模板列表
    problems = []

    # 6.1 平面向量的概念
    problems.extend([
        # 例2 - 正六边形中的相等向量
        {
            "题目基本信息": {
                "编号": "T6-1-1-E01",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.1 平面向量的概念",
                    "页码": 11,
                    "原始编号": "例2"
                }
            },
            "题目内容": {
                "题干": "如图 6.1-8, 设 O 是正六边形 ABCDEF 的中心, 分别写出图中与向量 OA, OB, OC 相等的向量.",
                "问题": ["分别写出图中与向量 OA, OB, OC 相等的向量."],
                "完整题目": "如图 6.1-8, 设 O 是正六边形 ABCDEF 的中心, 分别写出图中与向量 OA, OB, OC 相等的向量.",
                "图片": "正六边形图示"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-1-1-09", "知识点名称": "相等向量"},
                        {"知识点编号": "K6-1-1-08", "知识点名称": "共线向量"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-1-1-03", "知识点名称": "向量的几何表示"}
                    ]
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-1-1-02", "方法名称": "向量相等与共线判断法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量基础",
                "二级题型": ["概念理解", "判断识别"],
                "综合标签": ["基础练习"]
            },
            "难度评估": {
                "整体难度": 2,
                "分小题难度": {"小题1": 2},
                "难度说明": "需要结合正六边形的几何性质，识别相等向量，属于基础应用题"
            }
        },

        # 练习题第1题 - 判断向量
        {
            "题目基本信息": {
                "编号": "T6-1-1-P01",
                "题目类型": "练习题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.1 平面向量的概念",
                    "页码": 11,
                    "原始编号": "练习第1题"
                }
            },
            "题目内容": {
                "题干": "下列量中哪些是向量? 悬挂物受到的拉力, 压强, 摩擦力, 频率, 加速度.",
                "问题": ["下列量中哪些是向量?"],
                "完整题目": "下列量中哪些是向量? 悬挂物受到的拉力, 压强, 摩擦力, 频率, 加速度.",
                "图片": None
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-1-1-01", "知识点名称": "平面向量的概念"}
                    ],
                    "辅助涉及": []
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-1-1-01", "方法名称": "向量概念识别法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量基础",
                "二级题型": ["概念理解"],
                "综合标签": ["基础练习"]
            },
            "难度评估": {
                "整体难度": 1,
                "分小题难度": {"小题1": 1},
                "难度说明": "基本概念判断题，考查对向量概念的掌握"
            }
        }
    ])

    # 6.2.1 向量的加法运算
    problems.extend([
        # 例1 - 向量加法作图
        {
            "题目基本信息": {
                "编号": "T6-2-1-E01",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.1 向量的加法运算",
                    "页码": 15,
                    "原始编号": "例1"
                }
            },
            "题目内容": {
                "题干": "如图6.2-5，已知向量a，b，求作向量a+b.",
                "问题": ["求作向量a+b"],
                "完整题目": "如图6.2-5，已知向量a，b，求作向量a+b.",
                "图片": "向量a和b的图示"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-1-01", "知识点名称": "向量的加法运算"},
                        {"知识点编号": "K6-2-1-02", "知识点名称": "向量加法的三角形法则"},
                        {"知识点编号": "K6-2-1-03", "知识点名称": "向量加法的平行四边形法则"}
                    ],
                    "辅助涉及": []
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-2-1-01", "方法名称": "向量加法作图法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量运算",
                "二级题型": ["作图应用"],
                "综合标签": ["基础练习"]
            },
            "难度评估": {
                "整体难度": 1,
                "分小题难度": {"小题1": 1},
                "难度说明": "向量加法的基本作图题"
            }
        },

        # 例2 - 轮渡问题
        {
            "题目基本信息": {
                "编号": "T6-2-1-E02",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.1 向量的加法运算",
                    "页码": 16,
                    "原始编号": "例2"
                }
            },
            "题目内容": {
                "题干": "长江两岸之间没有大桥的地方，常常通过轮渡进行运输。如图6.2-8，一艘船从长江南岸 A 地出发，垂直于对岸航行，航行速度的大小为 15 km/h，同时江水的速度为向东 6 km/h。 (1) 用向量表示江水速度、船速以及船实际航行的速度；(2) 求船实际航行的速度的大小(结果保留小数点后一位)与方向(用与江水速度间的夹角表示,精确到1°).",
                "问题": [
                    "(1) 用向量表示江水速度、船速以及船实际航行的速度",
                    "(2) 求船实际航行的速度的大小与方向"
                ],
                "完整题目": "长江两岸之间没有大桥的地方，常常通过轮渡进行运输。如图6.2-8，一艘船从长江南岸 A 地出发，垂直于对岸航行，航行速度的大小为 15 km/h，同时江水的速度为向东 6 km/h。 (1) 用向量表示江水速度、船速以及船实际航行的速度；(2) 求船实际航行的速度的大小(结果保留小数点后一位)与方向(用与江水速度间的夹角表示,精确到1°).",
                "图片": "轮渡航行示意图"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-1-01", "知识点名称": "向量的加法运算"},
                        {"知识点编号": "K6-2-1-03", "知识点名称": "向量加法的平行四边形法则"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-1-1-01", "知识点名称": "平面向量的概念"}
                    ]
                },
                "小题2": {
                    "主要考查": [
                        {"知识点编号": "K6-1-1-04", "知识点名称": "向量的长度（模）"},
                        {"知识点编号": "K6-2-4-01", "知识点名称": "向量的夹角"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-2-1-01", "知识点名称": "向量的加法运算"}
                    ]
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-2-1-01", "方法名称": "向量加法作图法"}
                ],
                "小题2": [
                    {"方法编号": "M6-4-1-01", "方法名称": "向量模长计算法"},
                    {"方法编号": "M6-4-2-01", "方法名称": "向量夹角计算法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量应用",
                "二级题型": ["实际应用", "计算求解"],
                "综合标签": ["综合应用", "多知识点"]
            },
            "难度评估": {
                "整体难度": 3,
                "分小题难度": {"小题1": 2, "小题2": 3},
                "难度说明": "实际应用题，需要建立数学模型并进行计算"
            }
        }
    ])

    # 6.2.2 向量的减法运算
    problems.extend([
        # 例3 - 向量减法作图
        {
            "题目基本信息": {
                "编号": "T6-2-2-E01",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.2 向量的减法运算",
                    "页码": 18,
                    "原始编号": "例3"
                }
            },
            "题目内容": {
                "题干": "如图6.2-12(1),已知向量 a, b, c, d, 求作向量 a-b, c-d.",
                "问题": ["求作向量 a-b, c-d"],
                "完整题目": "如图6.2-12(1),已知向量 a, b, c, d, 求作向量 a-b, c-d.",
                "图片": "四个向量的图示"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-2-02", "知识点名称": "向量的减法运算"},
                        {"知识点编号": "K6-2-2-03", "知识点名称": "向量减法的几何意义"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-2-2-01", "知识点名称": "相反向量"}
                    ]
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-2-2-01", "方法名称": "向量减法几何作图法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量运算",
                "二级题型": ["作图应用"],
                "综合标签": ["基础练习"]
            },
            "难度评估": {
                "整体难度": 2,
                "分小题难度": {"小题1": 2},
                "难度说明": "向量减法的基本作图题，需要掌握几何意义"
            }
        },

        # 例4 - 平行四边形中的向量
        {
            "题目基本信息": {
                "编号": "T6-2-2-E02",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.2 向量的减法运算",
                    "页码": 18,
                    "原始编号": "例4"
                }
            },
            "题目内容": {
                "题干": "如图6.2-13,在 □ABCD 中, AB→=a, AD→=b, 你能用 a, b 表示向量 AC→, DB→ 吗?",
                "问题": ["用 a, b 表示向量 AC→, DB→"],
                "完整题目": "如图6.2-13,在 □ABCD 中, AB→=a, AD→=b, 你能用 a, b 表示向量 AC→, DB→ 吗?",
                "图片": "平行四边形ABCD图示"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-1-01", "知识点名称": "向量的加法运算"},
                        {"知识点编号": "K6-2-2-02", "知识点名称": "向量的减法运算"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-2-1-03", "知识点名称": "向量加法的平行四边形法则"}
                    ]
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-3-1-01", "方法名称": "平行四边形对角线向量法"},
                    {"方法编号": "M6-2-3-01", "方法名称": "向量线性运算化简法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量运算",
                "二级题型": ["计算求解", "概念应用"],
                "综合标签": ["基础练习", "多知识点"]
            },
            "难度评估": {
                "整体难度": 2,
                "分小题难度": {"小题1": 2},
                "难度说明": "平行四边形中向量的表示，需要运用向量的加减法"
            }
        }
    ])

    # 6.2.3 向量的数乘运算
    problems.extend([
        # 例7 - 三点共线
        {
            "题目基本信息": {
                "编号": "T6-2-3-E01",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.3 向量的数乘运算",
                    "页码": 20,
                    "原始编号": "例7"
                }
            },
            "题目内容": {
                "题干": "如图6.2-16, 已知任意两个非零向量 a, b, 试作 OA→=a+b, OB→=a+2b, OC→=a+3b. 猜想 A,B,C 三点之间的位置关系, 并证明你的猜想.",
                "问题": ["猜想 A,B,C 三点之间的位置关系, 并证明"],
                "完整题目": "如图6.2-16, 已知任意两个非零向量 a, b, 试作 OA→=a+b, OB→=a+2b, OC→=a+3b. 猜想 A,B,C 三点之间的位置关系, 并证明你的猜想.",
                "图片": "向量作图图示"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-3-03", "知识点名称": "向量共线的充要条件"},
                        {"知识点编号": "K6-2-3-01", "知识点名称": "向量的数乘运算"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-2-1-01", "知识点名称": "向量的加法运算"}
                    ]
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-2-4-01", "方法名称": "三点共线向量证明法"},
                    {"方法编号": "M6-2-3-02", "方法名称": "向量共线参数求解法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量应用",
                "二级题型": ["证明题"],
                "综合标签": ["综合应用", "多知识点"]
            },
            "难度评估": {
                "整体难度": 3,
                "分小题难度": {"小题1": 3},
                "难度说明": "需要先作图，然后猜想并证明三点共线，考查综合能力"
            }
        }
    ])

    # 6.2.4 向量的数量积
    problems.extend([
        # 例9 - 数量积计算
        {
            "题目基本信息": {
                "编号": "T6-2-4-E01",
                "题目类型": "例题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.4 向量的数量积",
                    "页码": 24,
                    "原始编号": "例9"
                }
            },
            "题目内容": {
                "题干": "已知|a→|=5, |b→|=4, a→与b→的夹角θ=2π/3，求a→·b→.",
                "问题": ["求a→·b→"],
                "完整题目": "已知|a→|=5, |b→|=4, a→与b→的夹角θ=2π/3，求a→·b→.",
                "图片": None
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-4-03", "知识点名称": "向量的数量积"}
                    ],
                    "辅助涉及": [
                        {"知识点编号": "K6-1-1-04", "知识点名称": "向量的长度（模）"},
                        {"知识点编号": "K6-2-4-01", "知识点名称": "向量的夹角"}
                    ]
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-2-4-02", "方法名称": "数量积计算技巧法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量运算",
                "二级题型": ["计算求解"],
                "综合标签": ["基础练习"]
            },
            "难度评估": {
                "整体难度": 2,
                "分小题难度": {"小题1": 2},
                "难度说明": "数量积的基本计算题，需要掌握公式和特殊角的三角函数值"
            }
        }
    ])

    # 练习题
    practice_problems = [
        # 6.2.1练习第1题
        {
            "题目基本信息": {
                "编号": "T6-2-1-P01",
                "题目类型": "练习题",
                "来源信息": {
                    "教材": "人教版高中数学必修第二册",
                    "章节": "第六章 平面向量及其应用",
                    "小节": "6.2.1 向量的加法运算",
                    "页码": 17,
                    "原始编号": "练习第1题"
                }
            },
            "题目内容": {
                "题干": "如图,在下列各小题中,已知向量a, b, 分别用两种方法求作向量a+b.",
                "问题": ["用两种方法求作向量a+b"],
                "完整题目": "如图,在下列各小题中,已知向量a, b, 分别用两种方法求作向量a+b.",
                "图片": "四组向量图"
            },
            "知识点标注": {
                "小题1": {
                    "主要考查": [
                        {"知识点编号": "K6-2-1-02", "知识点名称": "向量加法的三角形法则"},
                        {"知识点编号": "K6-2-1-03", "知识点名称": "向量加法的平行四边形法则"}
                    ],
                    "辅助涉及": []
                }
            },
            "方法标注": {
                "小题1": [
                    {"方法编号": "M6-2-1-01", "方法名称": "向量加法作图法"}
                ]
            },
            "题型分类": {
                "一级题型": "向量运算",
                "二级题型": ["作图应用"],
                "综合标签": ["基础练习"]
            },
            "难度评估": {
                "整体难度": 1,
                "分小题难度": {"小题1": 1},
                "难度说明": "向量加法的基本作图题，练习两种法则"
            }
        }
    ]

    problems.extend(practice_problems)

    return {"problem_list": problems}

def main():
    """主函数"""
    problem_list = generate_problem_list()

    # 保存到文件
    with open('/Users/robertmaxwell/note/知识图谱/教科书-数学/必修第二册/problem_list_chapter6_complete.json', 'w', encoding='utf-8') as f:
        json.dump(problem_list, f, ensure_ascii=False, indent=2)

    print(f"已生成包含 {len(problem_list['problem_list'])} 道题目的完整列表")
    print("文件保存为: problem_list_chapter6_complete.json")

if __name__ == "__main__":
    main()