1701005666
726+627=1353
1701005667
1701005668
1353+3531=4884
1701005669
1701005670
89的“回文数之路”则特别长,要到第24步才会得到第一个回文数——8813200023188。
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
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
[
上一页 ]
[ :1.701005666e+09 ]
[
下一页 ]