财产保险可持续性建模:蒙特卡洛仿真与Python实践
简介2024年美国大学生数学建模竞赛ICM Problem E赛题的Python实现方案聚焦财产保险可持续性建模面向数学建模参赛者、Python数据分析入门或进阶学习者也适用于毕业设计、课程设计、大作业和工程实训场景。资源包共43个文件大小18.43MB包含7个Python脚本如灰色预测、模糊综合评价、层次分析、支持向量机等模型实现、3个Excel数据集、2个PDF赛题文档、多张可视化PNG/SVG图表及PSD设计源文件代码、数据与文档组织清晰。已有111人学习下载。方案完整覆盖从数据读取、模型训练到灵敏度分析、结果可视化的流程可直接运行学习图表可复用于论文或答辩展示适合作为建模竞赛复盘或项目起步的参考。1. 财产保险可持续性美赛这道题在考什么Python建模从哪下手每年美赛的财产保险可持续性题都会劝退一批习惯跑机器学习的人——他们翻遍数据找标签和准确率最后发现题目问的根本不是“哪张保单会出险”而是“一家财产保险公司在现有保费、赔付与资本结构下还能不能继续经营下去”。用 Python 做这道题核心不是堆模型而是把产险精算里那套现金流逻辑搬进蒙特卡洛仿真从保单的理赔频率和强度分布出发模拟未来多年的赔付总额计算破产概率与偿付能力充足率。适合两类读者正在备赛、想要可复现 baseline 的数模学生以及想用 Python 验证保险业务可持续性的从业者。这篇按“拆问题→拟合分布→现金流仿真→避坑→敏感性分析”的顺序展开中间每一步都给可跑的代码和参数说明。2. 先拆可持续性保费、赔付与偿付能力怎么定量“可持续”这个词在数模题里最容易被写成口号。要让它能被 Python 计算第一步是把概念翻译成三个可量化的口径论文里所有结论都挂在它们下面。2.1 三个量化口径承保亏损、偿付能力与破产概率第一个口径是承保结果。财产保险公司每年收上来一批保费赔出去一批赔款二者之比叫损失率loss ratio加上费用率之后再叫综合成本率。损失率超过 100%说明承保端在亏钱只能靠投资收益弥补。这个口径在 Python 里就是一行除法但它决定了后续所有模拟的方向保费不是拍脑袋定的而是要和赔付分布对齐。第二个口径是偿付能力充足率。监管会要求保险公司保留一笔最低资本用于吸收超出预期的赔付。用模拟盈余与要求资本做比较盈余低于要求的次数占比就是偿付能力不足的概率。这个口径比损失率更接近“可持续”因为它把时间跨度和波动性都包含了进来。第三个口径是长期生存概率也叫破产概率ruin probability。给定初始资本、每年保费、理赔频率与强度分布模拟未来 10 到 20 年现金流记录盈余第一次小于零的时间。这是蒙特卡洛最擅长回答的问题也是美赛评阅人最容易看懂的量化结果。口径 | 定义 | Python 里怎么算 | 适合回答的问题 承保损失率 | 总赔付 / 总保费 | 按年聚合后直接除 | 现在的费率够不够覆盖理赔 偿付能力充足率 | 模拟盈余 / 最低要求资本 | 蒙特卡洛每年计算比率 | 资本缓冲是否充足 破产概率 | 盈余首次为负的模拟占比 | 多年现金流循环统计 | 长期经营是否可持续三个口径不是互相替代而是从近到远的三个观察距离。竞赛时间有限我会建议把重心放在破产概率上损失率和偿付能力比率作为辅助指标并列给出。2.2 为什么总赔付要拆成“频率×强度”建模很多第一次做题的人会把各年总赔付直接当成一个分布去拟合然后用它模拟未来。这种做法在数据量大的时候看起来可行但有两个问题第一总赔付把不同风险特征的保单混在一起方差被严重低估第二它没法回答“如果费率上调 20%破产概率降多少”这类问题因为费率调整改变的是承保门槛和保单结构而不是总赔付的统计形状。更稳妥的做法是把每张保单的年赔付拆成两部分赔付次数频率和单次赔付额强度。每张保单一年里可能赔 0 次、1 次或多次赔一次的钱也可能从几千到几十万不等。总赔付就写成复合分布的形式S Σᵢ Σⱼ₌₁ᴺⁱ Xᵢⱼ其中 Nᵢ 是第 i 张保单在一年里的理赔次数Xᵢⱼ 是第 i 张保单第 j 次理赔的金额。Nᵢ 通常是泊松分布或负二项分布Xᵢⱼ 常用对数正态、Gamma 或 Weibull。把频率和强度分开之后既能体现不同地区、不同房屋类型的风险差异也能在模拟时为每张保单独立抽样尾部风险比直接拟合计总额更真实。2.3 选型理由泊松-对数正态作为 baseline我一般会把“泊松频率 对数正态强度”作为 baseline 组合理由有三个。其一泊松分布只有一个参数 λ可以直接用保单特征做回归扩展成 λᵢ解释性很强其二对数正态分布在保险精算里用得最广能捕捉“多数赔付很少、少数赔付很大”的右偏形态参数也只有两个其三scipy 和 statsmodels 对这两个分布的支持最成熟拟合和抽样都是一行代码的事。备选方案是负二项分布替代泊松。负二项多一个离散参数能处理“实际数据比泊松预测更分散”的情况也叫过度离散赛题数据如果理赔次数方差远大于均值就用负二项。强度方面Gamma 分布尾部比对数正态更薄适合赔付上限明显、大额极端值较少的场景。选哪个不是越复杂越好而是要看拟合优度检验结果下一章直接演示判断方法。3. Python 实现损失分布拟合从保单数据到赔付分布参数题目给的原始数据通常不是现成的统计样本而是理赔明细和保单明细两份表。想把分布参数估准得先把数据整理成“每张保单在观测期内的理赔次数和理赔总额”。3.1 数据预处理把理赔记录归位到保单年度常见的赛题数据结构是保单表含保单编号、起保日期、保险金额、房屋类型、地区等字段理赔表含保单编号、理赔日期、赔付金额。要做的是把每张理赔单匹配到它所属的保单年度里再按保单聚合出理赔次数和赔付总额。import pandas as pd import numpy as np # 保单表和理赔表读入后统一日期格式 policy_df[policy_start] pd.to_datetime(policy_df[policy_start]) policy_df[policy_end] pd.to_datetime(policy_df[policy_end]) claim_df[claim_date] pd.to_datetime(claim_df[claim_date]) # 判断理赔是否发生在保单有效期内 merged claim_df.merge(policy_df, onpolicy_id, howleft) merged[is_covered] ( (merged[claim_date] merged[policy_start]) (merged[claim_date] merged[policy_end]) ) # 只保留有效理赔按保单汇总 valid_claims merged[merged[is_covered]] policy_stats valid_claims.groupby(policy_id).agg( claim_count(claim_amount, count), claim_sum(claim_amount, sum) ).reset_index() # 和保单主表拼接保单主表决定每一“张”样本 df_policy policy_df.merge(policy_stats, onpolicy_id, howleft) df_policy[claim_count] df_policy[claim_count].fillna(0) df_policy[claim_sum] df_policy[claim_sum].fillna(0)这段代码做了三件事日期标准化、理赔归属判断、按保单聚合。关键是is_covered这一步如果理赔日期恰好落在保单起止时间之外还在统计口径里后面拟合出来的频率参数就会虚高。另外注意howleft保留了没有理赔的保单这些样本对频率估计非常重要——它们代表“一年没出险”的绝大多数情况不能因为没赔钱就被丢进黑匣子。3.2 频率与强度分别拟合泊松回归与对数正态理赔次数可以直接用全部保单样本拟合。赛题数据里保单带有地区、房屋类型、保险金额等特征用泊松回归比用单一 λ 更合理。理赔强度则只用“理赔次数大于 0”的样本拟合因为零赔付样本对单次赔付金额的分布没有信息。import statsmodels.api as sm import statsmodels.formula.api as smf from scipy import stats # 频率模型理赔次数 ~ 特征选择 Poisson 连接 formula_freq claim_count ~ region building_type np.log(insured_value) model_freq smf.glm( formulaformula_freq, datadf_policy, familysm.families.Poisson() ).fit() # 提取强度样本只保留有赔付记录的保单 severity_data valid_claims[claim_amount].values # 拟合对数正态分布floc0 强制位置参数为 0 shape, loc, scale stats.lognorm.fit(severity_data, floc0) sigma shape # 对数标准差 mu np.log(scale) # 对数均值 print(f泊松回归 AIC: {model_freq.aic:.2f}) print(f对数正态参数: mu{mu:.4f}, sigma{sigma:.4f})参数说明smf.glm的formula是 statsmodels 的类 R 语法np.log(insured_value)表示对保险金额取对数后作为线性项这符合“保额越高理赔可能越多”的实际关系familysm.families.Poisson()指定泊松分布默认连接函数是 log。强度部分stats.lognorm.fit返回三个参数shape是对数标准差 σscale等于 e^μ所以取对数就得到 μ。这里最常见的坑是忘了floc0如果放任 loc 自由估计小赔付样本会被一个偏移量强行吸收后续模拟出来的赔付金额下限会变成负数。如果理赔次数的方差明显大于均值把family换成sm.families.NegativeBinomial()再拟一次比较 AIC 谁小用谁。AIC 是赤池信息准则用于衡量拟合与复杂度之间的平衡不是看单个参数大小而是看不同模型之间的相对值。3.3 拟合优度检验KS 检验与 Q-Q 图分布选型不能靠肉眼我用两个手段交叉验证。KS 检验给出一个 p 值p 大于 0.05 表示不能拒绝“样本来自该分布”的原假设Q-Q 图则用来看偏离发生在哪个部位——尾部还是中间。from scipy import stats # KS 检验注意参数顺序与 lognorm 定义一致 ks_stat, ks_p stats.kstest( severity_data, lognorm, args(sigma, 0, np.exp(mu)) ) # Q-Q 图样本分位数 vs 理论分位数 import matplotlib.pyplot as plt theoretical stats.lognorm.ppf( np.linspace(0.01, 0.99, len(severity_data)), sigma, 0, np.exp(mu) ) sample_sorted np.sort(severity_data) plt.figure(figsize(6, 5)) plt.scatter(theoretical, sample_sorted, s8) plt.plot([sample_sorted.min(), sample_sorted.max()], [sample_sorted.min(), sample_sorted.max()], r--, lw1) plt.xlabel(理论分位数) plt.ylabel(样本分位数) plt.title(Q-Q Plot: 对数正态拟合) plt.show()kstest的args必须按照(shape, loc, scale)的顺序传和lognorm.fit的返回顺序一致写反了 p 值会变得毫无意义。Q-Q 图在高分位处如果明显偏离直线说明尾部被低估这时候要换 Gamma 或 Burr 分布重新拟合。拟合优度检验不是一次性通过就结束它是整个建模流程的守门员后面所有仿真结论都建立在这些分布“足够像真实数据”的前提上。4. 用蒙特卡洛仿真估算持续经营的概率现金流模拟代码分布参数拟合好之后进入整篇论文最核心也最出数的地方模拟未来多年的现金流统计破产概率。这个环节的代码量不大但每个参数都直接影响结论需要解释清楚。4.1 一年总赔付的复合分布抽样每年总赔付的模拟分两层先给每张保单抽样出理赔次数再给每一次理赔抽样出赔付金额。这样保单之间的风险差异自然就保留了下来不需要人为指定一个总赔付方差。# 从拟合好的模型中生成一组“未来保单” n_policy df_policy.shape[0] def simulate_one_year(policy_data, mu, sigma, seed0): rng np.random.default_rng(seed) # 频率根据保单特征预测泊松强度 lam model_freq.predict(policy_data) freq rng.poisson(lam) # 强度对每个理赔抽一次对数正态 total_loss 0.0 n_claims freq.sum() if n_claims 0: severities rng.lognormal(meanmu, sigmasigma, sizen_claims) total_loss severities.sum() return total_loss, n_claims这里有一个很容易忽略的地方泊松回归的predict返回的是每张保单的平均理赔次数 λ不是次数本身。用rng.poisson(lam)才能生成“这张保单今年到底赔几次”的随机数。理赔强度抽样用了rng.lognormal注意它的mean和sigma是正态分布参数不是对数正态的均值所以直接传第 3 章拟合出来的mu和sigma就是对的。如果赛题里有免赔额和保额上限强度抽样之后还要做截断处理赔付额 min(max(x - 免赔额, 0), 保额上限 - 免赔额)这一步漏掉会让模拟赔付明显偏高。4.2 多年现金流与变破产概率计算破产概率的算法是给一个初始盈余假设每年保费收入固定或用预测模型逐年调整赔付支出按上面的模拟函数生成加上投资收益和固定费用更新盈余。只要某一年盈余小于零就记一次破产然后进入下一次模拟。def simulate_ruin_probability(policy_data, mu, sigma, annual_premium, initial_capital, years10, sims2000, invest_rate0.03, fixed_cost_rate0.15, seed42): rng np.random.default_rng(seed) ruin_count 0 ruin_year_records [] for sim_id in range(sims): surplus initial_capital ruined False for year in range(years): # 当年赔付复合分布抽样 total_loss, _ simulate_one_year( policy_data, mu, sigma, seedseed sim_id * 100 year ) # 现金流更新先投资增值再加保费减赔付和费用 surplus surplus * (1 invest_rate) surplus annual_premium * (1 - fixed_cost_rate) surplus - total_loss if surplus 0: ruined True ruin_year_records.append(year 1) break if ruined: ruin_count 1 ruin_prob ruin_count / sims return ruin_prob, ruin_year_records ruin_prob, ruin_years simulate_ruin_probability( policy_datadf_policy, mumu, sigmasigma, annual_premiumdf_policy[premium].sum(), initial_capitaldf_policy[premium].sum() * 1.2, years10, sims2000 ) print(f10 年破产概率: {ruin_prob:.3f})参数说明initial_capital是初始资本金我一般取当年保费的 1.2 到 2 倍这个比例对应监管最低资本要求invest_rate是投资收益率取 0.03 比较保守想分析利率影响就把它改成可调参数fixed_cost_rate是运营费用率0.15 是产险业的常见区间。seed拆成seed sim_id * 100 year是为了保证每次模拟的保单抽样序列不重复同时保证整体可复现。这里的annual_premium在第一个版本里设成恒定值实际论文里可以加一个“费率逐年上涨”的分支看看多高的涨幅能把破产概率压到可接受水平。4.3 结果解读把概率翻译成可持续性结论模拟完不能只报一个破产概率了事评阅人要看这张概率表怎么指导决策。常见补法是输出赔付分布的分位数表把它和保费、资本并列对照。# 只看首年赔付分布用来评估保费的充足程度 first_year_losses [] for i in range(5000): loss, _ simulate_one_year(df_policy, mu, sigma, seed10000 i) first_year_losses.append(loss) loss_arr np.array(first_year_losses) print(f首年赔付均值: {loss_arr.mean():,.0f}) print(f95%分位数: {np.quantile(loss_arr, 0.95):,.0f}) print(f99%分位数: {np.quantile(loss_arr, 0.99):,.0f})如果 95% 分位数超过当年保费就说明“保费储备不足”是有量化证据的一百年里大概有五年会赔穿。反过来如果 99% 分位数远低于保费说明定价偏高可以下调费率换续保率。这三个数字放进论文里可持续性的结论就有了锚点。到这一步模型主流程已经完整但真正决定论文分数的往往是下一章那些细节坑。5. 建模避坑影响最终结论的四个常见问题5.1 忽略巨灾风险的相关性尾部被严重低估现象模拟出来的破产概率非常低例如只有 0.5%但实际数据里某一年某个地区同时发生多起大额理赔单年赔付直接超过保费的 1.8 倍。原因默认了所有保单的理赔相互独立。同一地区、同一片洪水或台风影响范围内的保单风险高度相关用独立假设抽样等于把尾部风险人为摊薄了。解决在模拟中给保单引入一个区域共因变量。比如每年生成一个区域风险因子 R同区域所有保单的 λ 同时乘上这个因子因子本身服从对数正态分布。实现起来只需在simulate_one_year里加一步lam model_freq.predict(policy_data) * region_factor。这样相关结构就有了尾部也能体现“区域性巨灾同时爆发的场景”。5.2 把不同风险的保单混在一起做总赔付拟合现象KS 检验 p 值远大于 0.05看似拟合得很好但模拟结果却和真实年度赔付对不上尤其是高频低损和低频高损两类保单混合时。原因总赔付分布是多类保单的混合混合分布虽然整体形状能被单个分布勉强逼近但它在模拟时无法区分“大量小额赔付”和“少量大额赔付”的比例变化。解决使用第 3 章的分层做法——先按地区和房屋类型分组拟合强度参数再在仿真里按保单特征分别抽样。如果赛题数据没有给保单维度特征那就至少按“住宅类”和“商业类”拆分拆完再拟合模拟结果会稳定得多。5.3 免赔额和保额上限是模拟出来的不是数据长这样现象理赔强度样本用原始赔付金额拟合模拟时也不做截断结果模拟的平均赔付比真实赔付高 30% 以上。原因保单条款通常有免赔额比如每次理赔前 5000 元自付和保额上限。观测到的理赔金额是截断后的结果直接用观测值拟合再在模拟中还原原始损失逻辑就错了。解决如果数据能区分“实际损失”和“赔付金额”优先用实际损失拟合分布在模拟时加截断逻辑payout min(max(loss - deductible, 0), limit - deductible)。如果数据只有赔付金额那就把分布拟合并保持模拟时不做二次截断只做一次免赔调整并在论文里明确说明数据口径。这道题的数据建模口径审稿人看得很细。5.4 时间口径混用暴露期长短不齐现象某年破产概率比别的组高出一倍查代码没问题查数据发现有一批保单的起保日期是年中观测窗口只有半年却被按一整年计算了理赔次数。原因数模赛题给的保单常常是陆续生效的不是统一的 1 月 1 日到 12 月 31 日。用自然年聚合理赔次数有些保单暴露了大半年有些只有两个月频率模型的 λ 被系统性拉低或拉高。解决在 3.1 的预处理阶段增加一个暴露时长字段exposure (policy_end - policy_start).days / 365.25泊松回归中使用exposure作为偏移量formula claim_count ~ region building_type np.log(insured_value) np.log(exposure)或者直接用offsetnp.log(exposure)。这样不同起保日期的保单在频率上就具备了可比性不会因为日期切得不好得出离谱结论。6. 进阶费率与免赔额的敏感性分析找到性价比最高的调整模型能跑通之后评阅人最想看到的是“你的方案能反哺决策”。我用得最多的进阶做法是费率与免赔额的双参数敏感性分析固定其他参数对保费乘数和免赔额做二维网格搜索重算破产概率找出“既能显著降低破产概率又不至于让费率涨幅吓跑客户”的折中带。# 网格搜索保费乘数 1.0~1.7免赔额 0 / 3000 / 8000 / 15000 premium_factors np.arange(1.0, 1.8, 0.1) deductibles [0, 3000, 8000, 15000] results [] for pf in premium_factors: for ded in deductibles: # 重新拟合强度时要考虑免赔额的影响这里简化处理 adjusted_mu mu - np.log1p(ded / np.exp(mu) * 0.3) prob, _ simulate_ruin_probability( policy_datadf_policy, muadjusted_mu, sigmasigma, annual_premiumdf_policy[premium].sum() * pf, initial_capitaldf_policy[premium].sum() * 1.2, years10, sims1000, seed2024 ) results.append((pf, ded, prob)) for pf, ded, prob in sorted(results, keylambda x: x[2]): print(f费率乘数 {pf:.1f}, 免赔额 {ded:6,}: 破产概率 {prob:.3f})注意这段里adjusted_mu是我习惯用的简化处理免赔额提高后可赔的平均金额下降用一个小系数按比例调整 μ。如果时间充裕更严谨的做法是把截断逻辑写进simulate_one_year每种免赔额重新走一遍赔付抽样。网格搜索做完把结果画成二维热力图或等高线图破产概率低于 2% 的“绿色区域”就是政策建议区间。热点词“数据规范化”这里也能用上把保费、赔付额统一按保额做归一化后再画热力图不同方案的对比才不会受保额规模干扰。这类赛题做到最后我最大的教训是随机种子和参数表一定要尽早固定在论文附录里。同一个模型种子不一样破产概率从 3% 跳到 6% 都有可能评阅人复现不出来整个模型的公信力就崩了。我现在的习惯是每次跑完网格搜索都把种子、输出、参数清单存一份 CSV论文里贴的图和数字严格取自身份一致的某一次运行。希望这些约定能帮你在赛场上少踩几个坑把精力留给真正有区分度的结论。本文还有配套的精品资源点击获取

相关新闻

小鼠体内抗体给药策略:剂量逻辑、操作规范与联合干预的设计框架

小鼠体内抗体给药策略:剂量逻辑、操作规范与联合干预的设计框架

体内抗体实验的关键决策节点在免疫学、肿瘤学及自身免疫疾病研究中,体内抗体干预是验证靶点功能、评估候选药物效果的核心技术手段。给药剂量、注射途径、稀释策略以及联合用药方案,共同构成实验成功与否的关键决策链。这些参数并非孤立存在,…

2026/10/14 13:49:03 阅读更多 →
MATLAB中用PSO优化SVM超参数实战指南

MATLAB中用PSO优化SVM超参数实战指南

简介:本资源是一份面向机器学习初学者与MATLAB实践者的PSO-SVM参数优化实战代码,聚焦解决支持向量机(SVM)在分类与回归任务中核参数与惩罚系数C难以人工调优的问题。通过粒子群优化(PSO)自动搜索最优超参数…

2026/10/13 0:28:01 阅读更多 →
线段树分治与可撤销并查集:动态图连通性问题的离线求解套路

线段树分治与可撤销并查集:动态图连通性问题的离线求解套路

P15417 「yrOI R1」彼时蓝星这题,如果只看题面,会以为出题人是来收作文素材的;读完才会发现,它其实是一道非常规整的动态图连通性问题。题目把 n 颗蓝星之间的相遇与别离做成了 m 条只存活一段时间的边,再丢给你 q 个时…

2026/10/14 10:15:53 阅读更多 →

最新新闻

整车八自由度Simulink动力学模型搭建:从方程到仿真验证

整车八自由度Simulink动力学模型搭建:从方程到仿真验证

做整车动力学仿真的人,几乎都会经历从二自由度自行车模型起步,再逐步往多自由度模型走的过程。二自由度模型能把横摆和侧向运动的基本逻辑讲清楚,但一涉及到载荷转移、侧倾对轮荷分布的影响、四个车轮独立的转速动力学,它就完全不…

2026/10/14 13:48:57 阅读更多 →
IMX6ULL嵌入式Linux文件系统目录操作指南

IMX6ULL嵌入式Linux文件系统目录操作指南

1. 项目概述作为一名嵌入式Linux开发者,我最近开始深入研究IMX6ULL这款性价比极高的ARM Cortex-A7开发板。在嵌入式Linux开发中,文件系统目录结构的理解和常用目录操作命令的掌握是基础中的基础。这篇文章将分享我在IMX6ULL开发板上学习Linux文件目录结构…

2026/10/14 13:48:57 阅读更多 →
快慢指针原理与实战:链表中间节点、环检测与入口定位

快慢指针原理与实战:链表中间节点、环检测与入口定位

1. 为什么快慢指针是链表问题的“万能钥匙”?——从三个经典问题看算法设计的本质快慢指针不是什么高深莫测的黑科技,它本质上是一种空间换时间的朴素思想在链表结构上的极致应用。我带过不少刚学数据结构的学生,他们第一次看到“用两个指针一…

2026/10/14 13:48:57 阅读更多 →
Workbench齿轮动力学仿真与工程优化实践

Workbench齿轮动力学仿真与工程优化实践

1. 项目概述:齿轮仿真的工程价值齿轮传动作为机械工业的"细胞",其动态特性直接影响着整个传动系统的可靠性、噪声水平和寿命。传统设计方法依赖经验公式和静态计算,难以捕捉高速运转下的真实行为。Workbench平台提供的齿轮动力学仿…

2026/10/14 13:48:57 阅读更多 →
C# OPC客户端调试:DA与UA双协议连接、读取、订阅全链路诊断

C# OPC客户端调试:DA与UA双协议连接、读取、订阅全链路诊断

简介:本资源是一个面向工业自动化与.NET开发者的C# OPC客户端实战项目,聚焦于使用OPC Net Api Chs库实现与OPC服务器的连接、数据读写、事件订阅及异常处理等核心通信功能,适用于具备基础C#和WinForm开发能力的中高级工程师学习工业协议集成。…

2026/10/14 13:48:57 阅读更多 →
ponytail:一个轻量原生JS前端插件,轻松搞定H5底部导航与运营浮层

ponytail:一个轻量原生JS前端插件,轻松搞定H5底部导航与运营浮层

ponytail 这个名字,好多人第一次听到都以为是来聊发型的。其实它是我很早就为了处理移动端 H5 底部导航和运营浮层写的一个微型前端插件,核心干的事情就一件:在页面任意指定位置追加一块内容,同时把动画、状态记忆、批量挂载这些看…

2026/10/14 13:47:56 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →