- 博客(213)
- 收藏
- 关注
原创 卡牌抽取游戏
我来为您创建一个使用Python Tkinter的卡牌抽取游戏UI。这个程序会实现您描述的所有功能。运行这个程序后,您会看到一个完整的GUI界面,可以按照您的描述进行卡牌抽取游戏。点击"刷新"按钮将当前未抽取的牌放回牌堆。10种不同的牌,每种4张,总共40张牌。用进度条形式直观显示每种牌的数量。实时显示牌堆中每种牌的剩余数量。当前抽取的3张牌(带抽取按钮)用户已抽取的牌(按类型统计)每次显示3张随机抽取的牌。可以一次性抽取全部3张牌。可以单独抽取任意一张牌。已抽取的牌不会放回牌堆。彩色显示不同类型的牌。
2026-05-28 16:27:04
59
原创 抽牌模拟器
设牌堆共有 \(N\) 种牌,第 \(i\) 种牌的数量为 \(m_i\),牌的总数 \(M = \sum_{i=1}^N m_i\)。目标牌为第 \(k\) 种,其数量为 \(m_k\)。每次试验从牌堆中随机不放回抽取 3 张牌,检查是否至少有一张目标牌。若是,则停止;否则将所有牌放回,重新开始抽取。各次试验相互独立。首先计算单次试验成功的概率 \(p\)。单次试验成功即至少抽到一张目标牌,其对立事件为抽到的 3 张牌均非目标牌。从 \(M\) 张牌中抽取 3 张的总方式数为 \(\binom{M}{
2026-05-28 09:11:13
599
原创 神经网络模型的外推性验证
这个神经网络应该能够很好地拟合训练区间的sin(x)函数,但在未训练区间(-2π ~ 2π)可能会表现出不同的拟合效果,这取决于神经网络的泛化能力。神经网络模型拟合sinx, 训练区间为-4pi~-2pi, 2pi~4pi。在-2pi~2pi, 神经网络模型拟合效果不好。在指定的两个区间(-4π ~ -2π 和 2π ~ 4π)生成训练数据。在整个区间(-4π ~ 4π)生成测试数据。分别计算训练区间和未训练区间的误差。真实函数与神经网络预测的对比。训练区间和未训练区间的对比。用不同颜色标记训练区间。
2026-05-25 11:00:52
128
原创 c++11, 不想用系统 API,直接用 argv[0] + 字符串截取, 在main.cpp获取exe目录后,在别的cpp也需要获取
用全局静态变量保存 argv [0]提供一对SetGet函数所有 cpp 共享同一个 exe 目录纯 C++11、无 API、最简洁如果你需要,我还能给你做成单例模式版本,更严谨。
2026-04-22 15:05:29
51
原创 Linux 下 .so 动态库 和 .a 静态库,在编译、链接、运行时的所有核心区别。
a 静态库:代码直接打包进你的可执行文件 /so,变大,运行不依赖外部文件。.so 动态库不打包,只是记录引用,运行必须有 .so 文件。.a = 把别人代码复制进你的程序.so = 运行时去找别人的代码你做 .so 库 → 尽量依赖 .so,不要用 .a用 .a 就必须让它用 -fPIC 编译,否则报错如果你愿意,我可以一步一步教你把 yaml-cpp 从 .a 换成 .so,让你彻底告别这个错误!
2026-04-22 10:22:25
233
原创 c++, sizeof(string)和string.size()有什么区别
特性作用对象内存大小字符串字符数时机编译时运行时单位字节字符个数与内容关系无关直接相关是否可变固定(对特定实现)动态变化简单记法对象有多大字符串有多长。
2026-04-22 10:03:58
50
原创 C++ 类模板 静态成员函数:声明/定义 static 规则
static含义冲突类内static:表示成员属于类,不属于对象全局 / 文件域的static:表示函数仅当前文件可见类外定义时加static会被编译器误解为文件局部函数,直接报错重复修饰错误静态成员函数的声明已经标记了 static,定义只需要实现,不需要重复修饰。声明static必须写定义static绝对不能写类模板:和普通类规则一模一样。
2026-04-22 09:58:30
72
原创 Git 忽略已提交过的文件夹 完整步骤
已提交过的文件,必须先取消追踪.gitignore才会生效git rm -r --cached 文件夹名/是核心命令(安全不删本地)之后再也不会提交这个文件夹了由AI生成。
2026-04-20 15:50:19
110
原创 在C++中,类模板的成员函数定义必须全部放在头文件中,不能分离到头文件和源文件中。
在C++中,类模板的成员函数定义必须全部放在头文件中,不能分离到头文件和源文件中。
2026-04-20 09:40:07
60
原创 多维数组展平为一维数组,当已知一维数组的index,想要得到多维数组各个维度的坐标
假设有一个多维数组,其维度是d0, d1, d2,... dn-1。那么每个元素的坐标是(x0, x1, ..., xn-1)。将其展平为一维的索引时,计算公式是:index = x0*(d1。...,对应CalcStep函数的结果。那么反过来,当已知一维的index,想要得到各个维度的坐标,就需要用每个步长去除,得到对应的xi的值,然后取余数继续处理下一个维度。这里的步长数组就是每个括号里的乘积,例如对于x0的步长是d1。FROM DEEPSEEK 深度思考。
2025-04-02 06:48:44
238
原创 libtorch,torch::nn::Module类改变parameters值和buffers值,以及深拷贝
【代码】libtorch,torch::nn::Module类改变parameters值和buffers值,以及深拷贝。
2025-03-26 08:01:22
260
原创 一道概率题:全集为共N个不同的东西,生成3个东西,每个东西的生成是独立的,这3个中有你想要的一个东西的概率是多少
全集为共N个不同的东西,生成M(M
2024-12-19 07:51:53
314
原创 电磁场convention
来源:EE 5337 Computational Electromagnetics Lecture #2 Maxwell’s Equations。
2024-12-16 06:07:14
169
原创 C++ Eigen::VectorXf和Eigen::VectorXd数据类型转换
【代码】C++ Eigen::VectorXf和Eigen::VectorXd数据类型转换。
2024-11-27 14:02:01
328
原创 c++ libtorch Eigen矩阵转换为torch张量时数据类型必须一致
Eigen的double矩阵不能从内存拷贝成float张量,必须先转换为float矩阵,再从内存拷贝为float张量。
2024-10-29 10:36:49
344
原创 c++ libtorch 如何把std::complex<double>转换为c10::Scalar或者c10::complex<double>
把std::complex<double>转换为c10::complex<double>代码示例。把std::complex<double>转换为c10::Scalar代码示例。
2024-10-22 17:27:34
395
原创 c++ libtorch 切片 torch::indexing::Slice()的含义
是一个辅助函数,用于创建一个切片对象,这个对象可以用于对Tensor进行切片操作。切片操作允许你选取Tensor中的一个子区域,而不需要复制数据。需要注意的是,切片操作不会改变原始Tensor的数据,而是返回一个新的Tensor,该Tensor与原始Tensor共享相同的数据。函数可以接受几个参数,它们定义了切片的开始、结束和步长。在上面的例子中,我们首先创建了一个5x5的Tensor,然后使用。在LibTorch中,
2024-10-22 17:02:45
860
原创 c++ libtorch tensor 求解本征值和本征向量
返回的是一个元组,其中第一个元素是包含本征值的Tensor,第二个元素是包含本征向量的Tensor。
2024-10-22 16:55:34
217
原创 c++ libtorch 多维张量和arrayfire 多维数组
第3维度是矩阵的行,第4维度是矩阵的列,以上代码表示生成2*3个4行5列的默认为torch::float32数据类型的随机矩阵。第1维度是矩阵的行,第2维度是矩阵的列,以上代码表示生成4*5个2行3列的默认为f32数据类型的随机矩阵。
2024-10-12 21:05:09
322
原创 c++ libtorch tensor 注意浅拷贝
结果 all_Kx和all_Ky一样,在每个第1维度上都是一样的随机b,因为all_Kx和all_Ky都是multi_dim_identity的浅拷贝,all_Kx先赋值,其实是赋值给了multi_dim_identity,然后all_Ky再赋值,其实是赋值给了multi_dim_identity,导致all_Kx也跟着变,所以和all_Ky一样。用clone方法可以深拷贝,这样all_Kx和all_Ky就不一样。
2024-10-12 20:53:07
421
原创 c++ libtorch 如何把std::complex<double>赋值给tensor
要将std::complex<double>转换为c10::complex<double>才能赋值给复数tensor。
2024-10-12 10:00:56
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅