文章列表
 
您正在查看 "mathematica 探险" 分类下的文章

2010-07-14 11:38
算术真的很难,十个月之后,这个 fNest[Round[# (1 + r)] - 299576&, 100 M, 240] 终于能算出 37 了。——但不知若干年后,儿子会如何评价他老子的愚钝。

另附 GCC 4.4.1 里 -O3 优化出问题的代码一则。(4.4.1 已经比较老了,4.5 里已无此 bug)


#include <stdio.h>

 
2010-03-19 17:49
一段代码 m 经过编译,运行后,得到的输出与 m 完全相同,则称 m 为能自我复现的程序。也就是说,这样的代码 m 是其运行环境里的一个“不动点”。

这样的程序在 Mathematica 里很容易写,比如“1”,“a”等等。这还不是最短的:最短的 m 即“没有代码”。

相对更“严肃”一些的自我复制程序是这样的:Print[# <> quote[#]]& @ "Print[# <> quote[#]]& @ "。

其中,quote = "\"" <> # <> "\""&。

C 语言实现起

 
2009-04-15 11:22
但愿能算个 0.1 了。

TDD 在通信里表示时分双工,在软件领域表示“测试驱动式开发”,我再加个“PDT”,“由编程驱动的测试”。

fMap[fSin, fRange[0, 2 iPi, 0.01 iPi]]

iPi = 3.141592653589793;
fSign = If[fEvenQ @ #, 1, -1]&;
fSin2 = Function[{x}, 1.0 fTotal[fMap[fSign @ # x ^ (2 # + 1) / Factorial[2 # + 1] &, fRange[0, 6]]]]; (* now, x is in [0, Pi/2) *)
fSin1 = Function[{x}, If[x > iPi / 2, fSin2[iPi - x], fSin2[x]]];
fSin0 = Function[{x}, If[x > iPi, - fSin1[x -

 
2009-04-08 16:42

一首 E 调,120拍/分钟的歌。其中有个小错误,呵呵。

song = {{{0, 1/2}, {1, 1/2}, {2, 1/2}, {3, 1/2}}, {{5, 1}, {6, 
      1}}, {{0, 1/2}, {b[6], 1/2}, {1, 1/2}, {2, 1/2}}, {{3, 1}, {5, 
      1}}, {{0, 1/2}, {b[3], 1/2}, {b[5], 1/2}, {b[6], 1/2}}, {{1, 
      1}, {3, 1}}, {{2, 1/2}, {3, 1/4}, {2, 1/4}, {1, 1/2}, {b[7], 
      1/2}}, {{b[6], 1}, {b[6], 1/2}, {b[6], 1/2}}, {{b[6], 1/2}, {0, 
      1/2}, {b[6], 1/2}, {0, 1/2}}}~
   Join~{{{b[6], 1/2}, {b[6], 1/2}, {1, 1/2}, {2, 

 
2009-04-02 18:41

fJoin = Head[#1][Sequence @@ #1, Sequence @@ #2]&;
fAppend = Function[{lst, ele}, fJoin[lst, {ele}]];
fFoldLeft  = Function[{f, acc, lst}, If[Length[lst] > 0, fFoldLeft[f, f[acc, First @ lst], Rest @ lst], acc]];
fFoldRight = Function[{f, acc, lst}, If[Length[lst] > 0, fFoldRight[f, f[acc, Left @ lst], Most @ lst], acc]];
fMap = Function[{f, lst}, fFoldLeft[fAppend[#1, f[#2]]&, {}, lst]];
fRange0 = Function[{start, end, step, acc}, If[start <= end, fRange0[start + 

 
2009-03-19 15:45

fac1、fac2 都能跑,可喜可贺。

fac1 = If[# < 2, 1, # #0[# - 1]]&;
fac2 = If[#1 < 2, #2, #0[#1 - 1, #1 #2]]&;

fac1[1000] 的速度好像比 yacas 里 1000! 的速度还快,呵呵,fac1 可是递归着算的。

 
2009-03-16 18:14

绕了一圈,又回来了。有大整数了。

yamma initialized.
>fac = If[# < 2, 1, # #0[# - 1]]&;
>fac[20]
Out: 2432902008176640000
>
 
2009-02-03 15:32

yamma initialized.
>fac = If[# < 2, 1, # #0[# - 1]]&;
>fac[10]
Out: 3628800
>
 
2008-12-10 13:22

很久没更新博客了。

1. Mathematica 7 已诞生,而我的《Mathematica 探险》却没有太大的进展,从 5.2 折腾到了 7.0。不过,我的心还没死,还有希望。

2. emule 上找了个 1.37G 的 Mathematica 7,下下来一看,真是:有心栽花,花不开;无心插柳,柳成荫。

3. Mathematica 里解析个东西,比如 JSON,速度慢得很,不应该啊。——当然,我想用的是 Erlang 里的 [X | T] 递推形式,有别的更快的方法。我现在很喜欢 Erlang 里的 [X | T] 递推。

4. 预见未来。预见了未来,干预了未来,未来也就变了,预测

 
2008-02-25 17:43

留言里有人问矩阵的鞍点的求法,粗略写一个,仅供参考。

MatrixExtremum[m, Min, {1, -2, 2}]: 求每行最小值的行号、列号。

MatrixExtremum[Transpose[m], Max, {2, -1, 2}]: 求每列最大值的行号、列号。

上述两个集合一交,鞍点就出来了。

MatrixExtremum[m_, f_, pat_] := 
  Flatten[MapIndexed[
    Partition[Riffle[Flatten@Position[#1, f[#1]], #2[[1]], pat], 2] &,
     m], 1];
SaddlePoint[m_] :=
  Intersection[MatrixExtremum[m, Min, {1, -2, 2}], 
   MatrixExtrem

 
   
 
 
文章分类
 
   
 
文章存档
 
     
 
最新文章评论
  

回复wo就在你身边:抱歉,没有。
 

《我盼邮递员来》,楼主有这歌曲吗?
 

抱歉,是我自己犯二了……
 

抱歉..问题解决了...是他没用管理员权限... 不过依然请教关于zlib的问题.. 不胜感激.
 

LZ你好,关于这个代码,我用Win7 X86版本调试成功,我朋友用Win7 64调试却报错,说er
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu