这是一个使用WPF (.net 8.0) 构建的生命表生成程序,可以完成
- 🎰 自动生成生命表 🎰
- 💼 保存表格 💼
- 📉 生成散点及拟合曲线图 📉
等功能,希望大家喜欢。
请安装.net 8.0 runtime (点击运行后会自动跳转)
目前只支持windows版本,在windows11,windows10上可以运行,在windows8.1以下的电脑可能有兼容性问题。 使用mac linux的同学可以向我要此算法的py版本
-
点击右侧"release"链接 ➡️ 展开"Assets" ➡️ 点击"v1.1.0-LTW-net8.0-windows.zip"下载
或者直接点击这里进行下载 -
点击进行解压,解压后在 📁 ./v1.1.0-LTW-net8.0-windows 📁 文件夹下找到 👨💻 start.bat 👨💻 ,双击运行。
-
(打开成功请跳过此步)如果你的电脑没有安装.net 8.0 runtime,会有弹窗提示去微软官网 (https://dotnet.microsoft.com/zh-cn/download) 下载该运行时。
点击✅ "下载.Net SDK x64" ✅
当下载完成后,找到下载好的运行时安装软件“dotnet-sdk-8.0.401-win-x64.exe”并双击安装。跟随步骤点击确定。待.Net SDK x64安装好后,重新双击步骤②中的👨💻 start.bat 👨💻运行。
- 点击“请选择生命表形式:”选项卡中的“生命表-对角线型”。
- 在下方的“请输入需要的样本数...”中输入一个你喜欢的数字,我们推荐使用 1000 作为样本数。
- 滑动右侧的滑条,选择判断数。默认为“3”.
- 点击上方栏中的“ ➕ 新数据 ”按钮,下方的表格栏中出现内容。
- 点击窗口上方栏中的“ 💾 保存 ”按钮,保存表格为csv文件。
- 点击上方栏中的“ 📊 绘图 ”按钮,弹出有拟合曲线图的新窗口。
- 点击有拟合曲线图的新窗口上方栏中的“ 💾 保存 ”按钮,保存图片。
注意,控制条只在“生命表-对角线型”状态下可用。
在默认情况下,json文本框中的内容如下:
{
"killNumber":[2,3,4],
"Rounds":[2,4,30]
}
这段json传递了两个数组 "killNumber"
和 "Rounds"
。
其中 "killNumber"
指在某一回合中去除样本的限定值,例如 killNumber[0]
== 2 时,上个回合生成的数列 life_table_once_row[]
(数列中数的值均在1-6之间)内的数字,小于 killNumber[0]
的数都会被去除。生成新的数列 life_table_once_row_save[]
,保存列长作为 nx
。
参数组 "Rounds"
则描述了当达到"Rounds[i]"
回合后,程序的行为:
- 若
"Rounds[i]"
不为数组最后一个数,则当Rounds[i]
回合时,使i
自增,并作用到killNumber
参数。此时killNumber
==killNumber[i+1]
。 - 若
"Rounds[i]"
为数组最后一个数(我们为最后一个数起名为Rounds[last]),则进行到Rounds[last]回合时,程序强行退出。
假设json文本框中的文字如下:
{
"killNumber":[2,3,4],
"Rounds":[2,4,30]
}
则程序行为如下:
程序初始化,i = 0;
0-1回合,killNumber[i] == killNumber[0] == 2;
2回合时,Rounds[i] == 2 等于本回合数,因此i++,此时i == 1; 故killNumber[i] == killNumber[1] == 3;
3回合 i == 1; Rounds[i] == Rounds[i] == 4; killNumber[i] == killNumber[1] == 3;
4回合时,Rounds[i] == 4 等于本回合数,因此i++,此时i == 2; 故killNumber[i] == killNumber[1] == 4;
......
30回合时,Rounds[i] == 30 等于本回合数,因此提示循环过长,退出程序。
尝试自己配置json,创造不同的曲线!