打字猴:1.701005671e+09
1701005671
1701005672 我们或许会想,不断地“一正一反相加”,最后将总能得到一个回文数,即对于几乎所有的数,按照规则不断加下去,迟早会出现回文数。
1701005673
1701005674 不过,196却是一个相当引人注目的例外。数学家们已经用计算机算到了3亿多位数,都没有产生过一次回文数。从196出发,究竟能否加出回文数来?这至今仍是个谜。
1701005675
1701005676 基于此流程,编写回文数迭代MATLAB程序如下:
1701005677
1701005678     function ysw3_3    clc,clear,close all        %清屏和清除变量    warning off                %消除警告        a=89;                  %输入一个数字        b = num2str(a);        %字符格式        c = swap(b);           %方向取反  1234 —> 4321        d = str2num(c);        %数字格式        if a==d            return;        else            d = 0;            d1 = 1;            %字符格式            d2 = 2;            %方向取反  1234 —> 4321            d3 = 3;            %数字格式            while d~=d3                d = d+a;                d1 = num2str(d);     %字符格式                d2 = swap(d1);       %方向取反  1234 —> 4321                d3 = str2num(d2);    %数字格式                 a = d3;            end            disp([‘回文数:  ‘,num2str(d3)])        end            end        function MA=swap(ma)         %该函数实现数字的倒序,如1234 —> 4321    ma1=ma;                      %赋值    Nma=size(ma,2);              %列大小    maij=(Nma(1,1):-1:1)’;    [ma(1,:),ma(maij)] = deal(ma(1,maij),ma(1,:));   %deal函数交换顺序    MA=ma;                       %赋值    ma=ma1;                      %赋值    end
1701005679
1701005680 运行程序输出结果如下:
1701005681
1701005682     a=89;                       %输入一个数字    回文数:  8813200023188    a=67;                       %输入一个数字    回文数:  484    a=69;                       %输入一个数字    回文数:  4884    a=17;                       %输入一个数字    回文数:  88
1701005683
1701005684
1701005685
1701005686
1701005687 我和数学有约:趣味数学及算法解析 [:1701004192]
1701005688 我和数学有约:趣味数学及算法解析 3.8 数在变,数字不变
1701005689
1701005690 【问题】数在变,数字不变,究竟是什么呢?
1701005691
1701005692 【分析】
1701005693
1701005694 数在变,数字不变,是一个数,经过数学运算后,得到一个新数,这个新数和原数的数字组成是相同的,具体如下:
1701005695
1701005696 123456789的两倍是246913578,正好又是一个由1~9组成的数字。
1701005697
1701005698 246913578的两倍是493827156,正好又是一个由1~9组成的数字。
1701005699
1701005700 把493827156再翻一倍是987654312,依旧恰好由数字1~9组成的。
1701005701
1701005702 把987654312再翻一倍的话,将会得到一个10位数1975308624,它里面仍然没有重复数字,恰好由0~9这10个数字组成。
1701005703
1701005704 再把1975308624翻一倍,这个数将变成3950617248,依旧是由0~9组成的。
1701005705
1701005706 不过,这个规律却并不会一直持续下去。继续把3950617248翻一倍将会得到7901234496,数字出现了重读数字,不过前5次的倍数显得整个数字排列很有规律。
1701005707
1701005708 采用计算机验证如下:
1701005709
1701005710     clc,clear,close all      %清屏和清除变量    warning off              %消除警告    format long              %长整型    a1 = 123456789;          %赋值    a2 = 2*a1                %放大2倍    a3 = 2*a2    a4 = 2*a3    a5 = 2*a4    a6 = 2*a5    a7 = 2*a6
1701005711
1701005712 运行程序输出结果如下:
1701005713
1701005714     a2 =       246913578    a3 =       493827156    a4 =       987654312    a5 =         1.975308624000000e+09    a6 =         3.950617248000000e+09    a7 =         7.901234496000000e+09
1701005715
1701005716 当然你也可以根据这个数,自己找一个符合这种工况的数,领略数字之美,从事不枯燥而有趣的实验,创造属于自己的美。
1701005717
1701005718
1701005719
1701005720
[ 上一页 ]  [ :1.701005671e+09 ]  [ 下一页 ]