- 注册时间
- 2015-10-15
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 2202
- 在线时间
- 小时
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
×
本帖最后由 TSC999 于 2016-11-3 20:01 编辑
我用 mathematica 写了一段程序,是针对本论坛【彩珠手串的配色计数】(见 http://bbs.emath.ac.cn/thread-9161-1-1.html)帖子的公式计算。
程序计算结果正确,但是有警告提示。为什么会有警告呢?如何能够消除警告?
- Clear[s]; Array[s, {30, 30}]; (*定义二维数组 s(16,16) *)
- For[q = 1, q <= 30, q++, (* 计算二维数组 s 的值 *)
- For[p = 1, p <= 30, p++,
- If[EvenQ[q], s[p, q] = 1/(2 q) \!\(
- \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(q\)]
- \*SuperscriptBox[\(p\), \(GCD[q, i]\)]\) + ((p + 1) p^(q/2))/4,
- s[p, q] = 1/(2 q) \!\(
- \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(q\)]
- \*SuperscriptBox[\(p\), \(GCD[q, i]\)]\) + p^((q + 1)/2)/2];]]
- n =.; j = 30;
- Array[x, 30]; (* 解方程:用数组 x[i] 作为未知数 *)
- For[n = 1, n <= j, n++,(* 算 1 至 30 珠 *)
- Clear[x]; a = Table[x[k], {k, 1, j}] /.
- Solve[Table[\!\(
- \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)]\(x[i]
- \*SuperscriptBox[\(k\), \(i\)]\)\) == s[k, n], {k, 1, j}],
- Table[x[k], {k, 1, j}]];
- b = a[[1]];
- m =.; ss = \!\(
- \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)]\(b[\([\)\(i\)\(]\)]*
- \*SuperscriptBox[\(m\), \(n + 1 - i\)]\)\);
- Print["s(", n, ")=", Factor[Simplify[ss]]]]
复制代码
上述程序运行结果见图:
|
-
|