csdn上的一个数学猜想

jintianhu2000在这个帖子里说:

这是本人读高中时发现的一个数学猜想,一直不能证明或推翻
 
任何一个不能被3整除的偶数,如488,按下列步骤:
若该数为偶数,则把它各位数之和的平方作为新数;若该数为奇数,则把它各位数之和的立方作为新数。再把那个新数重复以上步骤(偶数就各位数之和平方,奇数就各位数之和立方),一步步计算下去,肯定能在9步内变为1。
如:
  488(偶)    4+8+8=20      20*20=400
  400(偶)    4+0+0=4       4*4=16
  16(偶)     1+6=7         7*7=49
  49(奇)     4+9=13        13*13*13=2197
  2197(奇)   2+1+9+7=19    19*19*19=6859
  6859(奇)   6+8+5+9=28    28*28*28=21952
  21952(偶)  2+1+9+5+2=19  19*19=361
  361(奇)    3+6+1=10      10*10*10=1000
  1000(偶)   1+0+0+0=1     1*1=1   (共9步)
 
哪位高手能证明或推翻它??

Read more…

牛!Mathematica还能这样用!自己制作马赛克拼图

    Wolfram的Blog上更新了一段非常牛的Mathematica代码,真的让我大开眼界。只需要三行代码,你就可以自己做一个马赛克拼图。
imagePool = Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &, FileNames["Pool/*.jpg"]];
closeMatch[c_] := RandomChoice[Take[SortBy[imagePool, Norm[c - #[[2]]] &], 20]][[1]];
Grid[Reverse[Map[closeMatch, Import["MasterImage.tif"][[1, 1]], {2}]], Spacings -> {0, 0}]

    其中,”Pool/*.jpg”是你的图库,我估计最少也得有几百张吧。我用Photoshop把我的collection全部处理成了35×35的小图;为了让最终效果更佳,我特地把它们全部处理成单色的,并且减小了对比度。”MasterImage.tif”是你的目标图片,Mathematica会把这个图片中的每一个像素用图库中一个合适的图来代替。我把我的照片剪裁了一下,然后压成19×22的大小。Mathematica首先把所有照片以及每个照片的RGB值的中位数存成一个list,函数closeMatch将图片按照RGB值的均方根排序,然后随机从头20个中选出一个。第三行用Grid函数输出我们所要的马赛克拼图。最后我们就得到了——由众MM图所组成的Matrix67的肖像画!!如果你还看不出来的话,站远点儿眯着眼睛就能看出来了。

Read more…

矩阵、随机化与分形图形

    Stetson大学的一个非常可爱的MM(以后本Blog将简称她为Stetson MM)和我分享了一个很神奇的东西。她们正在做一个线性代数的课题研究,题目的大致意思是“用矩阵来构造分形图形”。Stetson MM叫我试着做下面这个实验:对于一个坐标点(x,y),定义下面4个矩阵变换:
    
    然后,初始时令(x,y)等于(0,0),按照 T1 – 85%, T2 – 6%, T3 – 8%, T4 – 1% 的概率,随机选择一个变换对该点进行操作,生成的点就是新的(x,y);把它画在图上后,再重复刚才的操作,并一直这样做下去。我心里觉得奇怪,这为什么会得到分形图形呢?于是我写了一个简单的Mathematica程序:
list = {{0, 0}};
last = {{0}, {0}};
For[i = 0, i < 50000, i++, r = Random[];    If[r < 0.85, last = {{0.83, 0.03}, {-0.03, 0.86}}.last + {{0}, {1.5}},      If[r < 0.91, last = {{0.2, -0.25}, {0.21, 0.23}}.last + {{0}, {1.5}},        If[r < 0.99, last = {{-0.15, 0.27}, {0.25, 0.26}}.last + {{0}, {0.45}},          last = {{0, 0}, {0, 0.17}}.last + {{0}, {0}}        ]      ]    ];    list = Append[list, First[Transpose[last]]]; ] ListPlot[list, PlotStyle -> PointSize[0.002]]

    程序运行的结果真的是令我大吃一惊:竟然真的是一个分形图形!!我不禁再次对数学产生了一种崇敬和畏惧感!!

   

Read more…

隐藏在函数里的问候

    不知是哪个牛人发现了这样一个有趣的函数f(x,y)=e^(-x^2-y^2/2) * cos(4x) + e^(-3((x+0.5)^2+y^2/2)),它可以说是“函数界”里的Hello World,因为当z充分小的时候(比如取0<z<0.001),函数图象是两个大大的字母,向电脑前的你表示最真挚的问候。看来,以后打招呼又有新的方式了。

    

    另外一些有趣的问题是,有没有牛人能找到一个并不太复杂的,可以显示“Hello World”的初等函数呢?或者更实用一些的,想要创作一个“XXX我爱你函数”需要花多长时间,函数本身会有多复杂?
    消息来源:http://www.walkingrandomly.com/?p=19

    你认为,是这个“HI函数”牛B,还是爱的方程式牛B?或者爱的方程式3D版更牛一些?或者数学公式生成的色情图片更牛?个人觉得,还是Tupper自我指涉公式最牛。

聆听函数的声音:Mathematica的声音函数试验

    
    你可以在这个Blog里看到很多地方用Mathematica代替了复杂的计算。Mathematica是一个强大的数学软件,很多网友看到了这个Blog上的一些演示后都迫不及待地装上了它。Mathematica的功能比你想象的多得多,今天我们来看一个有趣的Mathematica函数——Play函数。我们将用Mathematica做一些有关函数和声音的简单试验。
    声音的实质是波函数。定义一个波函数和定义域的范围,Mathematica可以播放出它表示的声音。试在Mathematica中运行这条语句:
Play[Sin[4000 t], {t, 0, 2}]

=================== 我是可爱的分割线 ===================

    上面的例子中,4000表示函数的周期大小,也就是声音的音调高低。把4000改成8000,你可以听到音调更高的声音:
Play[Sin[8000 t], {t, 0, 2}]

    函数的形状决定了音色。对于不同的周期函数,声音是不一样的。试试下面三个不同的函数:
Play[Sin[5000 t], {t, 0, 2}]
Play[Tan[5000 t], {t, 0, 2}]
Play[Mod[5000 t, 50], {t, 0, 2}]

    如果我们的函数不是周期函数呢?记得一次音乐课上,老师曾经告诉过我们音乐和噪声的区别。
Play[Random[], {t, 0, 2}]

=================== 我是可爱的分割线 ===================

    音量的大小由振幅来控制,说穿了就是函数值的大小。运行下面三条语句,你会发现函数竟然可以用声音如此形象地表现出来。你甚至可以让别人根据音量变化来猜你放的是什么函数。
Play[Sin[4000t] t, {t, 0, 2}]
Play[Sin[4000t] t^2, {t, 0, 2}]
Play[Sin[4000t] Log[t], {t, 0, 2}]
Play[Sin[4000t] Sin[8t], {t, 0, 2}]
Play[Sin[4000t] Mod[t,0.4], {t, 0, 2}]

    
    当复合函数出现后,真正有趣的事情开始了。我们来想象一下Sin(x^2)的图象是什么样子。x的绝对值越大,x^2的值变化越快,反映在正弦波上就是波长越短,音调越高。也就是说,x^2的形状与音高有直接的关系。于是,你将听到的是一段可以让你立即联想起二次函数的声音:
Play[Sin[5000 t^2], {t, -1, 1}]

    在运行下面的语句前,你可以先自己想象一下每个函数对应的声音是什么样子的:
Play[Sin[5000/t], {t, 0, 2}]
Play[Sin[5000 * Sqrt[t]], {t, 0, 2}]
Play[Sin[5000 * Sin[4t]], {t, 0, 2}]
Play[Sin[2000 t * Sin[8t]], {t, 0, 2}]

=================== 我是可爱的分割线 ===================

    两个函数相加的结果是什么?下面两个例子分别是二次函数加正弦函数,与倒数函数加噪声。你可以立即观察到,函数的相加即声音的相加。
Play[Sin[5000 (t-1)^2] + Sin[5000 * Sin[4t]], {t, 0, 2}]
Play[Sin[5000/t] + Random[], {t, 0, 2}]

    我们还可以举一些其它的例子来说明这种现象。比如,Sin[5000t]和Cos[5000t]的声音肯定是一样的,那么函数Sin[5000t] + Cos[5000t]的周期一定与原来相同,只是振幅更大。
    

    再看下面的这个例子。同样是函数的相加,为什么这次只能听见mod函数的声音,但听不见正弦函数的声音呢?
Play[Sin[5000 t] + Mod[5000 t, 50], {t, 0, 2}]
    原因很简单。上面两个函数中,mod函数的振幅更大,因此它的声音远远大于sin函数的声音,于是sin函数只能淹没在mod的嘈杂声中。如果把sin函数乘上一个系数50,两个函数的声音就一样大了:
Play[50 * Sin[5000 t] + Mod[5000 t, 50], {t, 0, 2}]

    把倒数函数与噪声的五分之一相加,得到的就是一个带有轻微噪声的“倒数函数声”。
Play[Sin[5000/t] + Random[]/5, {t, 0, 2}]

=================== 我是可爱的分割线 ===================

    当然,声音可以相加,也就可以相减。对于多种函数的混音,减去一个特定的函数可以从混音中踢去对应的声音。电影里经常会出现这样一些镜头,侦探们用电脑消去截获的音频中特定的背景声音。从函数的角度来看,这样的事情在理论上是可行的。比如,你偷偷摸摸录下了你的MM和她的前男友的谈话,但最关键的那段谈话声被一个突如其来的电话铃声盖住了。现在,你只需要获取一个电话铃声的样本,然后从原始声音中减去电话铃声即可。而电话铃声是非常简单的波函数,你完全可以自己生成一个。科幻电影中也经常见到一些类似的事情:某超级BOSS制造出的秘密武器可以放射有害波函数f(x),然后天才科学家们争分夺秒地制作并发射出-f(x)函数,企图和有害波正负抵消,把它中和了。在五花八门的波函数中加入一个-f(x),实际上就相当于从“混合波”中减去f(x)。
    前几天给系里的MM找迎新晚会用的音乐伴奏时突然想到了一个有趣的问题:是否有可能在某个歌曲的原声和自己的清唱之间做差值运算?这在理论上提供了一个有趣的消音算法,和一个同样有趣的翻唱相似度评判标准(看差值里残留有多少人声)。

=================== 我是可爱的分割线 ===================

    不要以为函数声音都那么难听,掌握适当的理论知识和技巧可以做出动听的声音。Mathematica的官方网站上有一个简单而动听的声音函数,这里写出来供大家欣赏:
Play[(2 + Cos[50 t])*Sin[2000*(1 + Round[2 t])*t], {t, 0, 3}]

Matrix67原创
转贴请注明出处
第一次涉及这方面的东西,很多东西都是自己的猜测,可能有理论错误,请大家指正!
同时,期待大家通过Mathematica试验发现更多有趣的推论。