随笔分类 - 数学
摘要:1.NIM初步通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。这游戏看上去有点复杂,先从简单情况开始研究吧。如果轮到你的时候,只剩下一堆石子,那么此时的必胜策略肯定是把这堆石子全部拿完一颗也不给对手剩,然后对手就输了。如果剩下两堆不相等的石子,必胜策略是通过取多的一堆的石子将两堆石子变得相等,以后如果对手在某一堆里拿若干颗,你就可以在另一堆中拿同样多的颗数,直至胜利。如果你面对的是两堆相等的石子,那么此时你是没有任何必胜策略的,反而对
阅读全文
摘要:先总结一下矩阵运算的模版程序求逆的方法目前不懂,求路过的大神解释。/* 这部分请忽略矩阵相乘有分治来优化的方法,Strassen算法,矩阵可以填0的方法计算令它成为2^n * 2^n,贴一下分治的那部分void Strassen(int n, T A[][N], T B[][N], T C[][N]) { T A11[N][N], A12[N][N], A21[N][N], A22[N][N]; T B11[N][N], B12[N][N], B21[N][N], B22[N][N]; T C11[N][N], C12[N][N], C21[N][N], C22[N][N];...
阅读全文
摘要:一,大数下面为我的高精度整数模板#include #include #include #include using namespace std;#define MAXN 500struct BigNum { int num[MAXN]; int len;};//高精度比较 a > b return 1, a == b return 0; a b.len) ? 1 : -1; for (i = a.len - 1; i >= 0; i--) if (a.num[i] != b.num[i]) return (a.num[i] > b.num...
阅读全文

浙公网安备 33010602011771号