1701005472
6174这个数字黑洞就叫做Kaprekar常数。
1701005473
1701005474
对于三位数,也有一个数字黑洞——495。
1701005475
1701005476
974–479=495
1701005477
1701005478
954–459=495
1701005479
1701005480
954–459=495
1701005481
1701005482
……
1701005483
1701005484
495即为三位数的数字黑洞。
1701005485
1701005486
采用MATLAB软件编程验证如下:
1701005487
1701005488
clc,clear,close all %清屏和清除变量 warning off %消除警告 %数字黑洞 a = 6767; %974,可修改 a1 = num2str(a); %数值型转字符串型 n = length(a1); %字符长度 for i=1
:n a2(i)=str2num(a1(i)); %将每一个字符依次转化为数值型,保存到a2数组 end if n==4 %四位数 a3 = sort(a2,‘descend’); %从大到小排列 a33 = a3(1) *1000+a3(2) *100+a3(3) *10+a3(4); a4 = sort(a2,‘ascend’); %从小到大排列 a44 = a4(1) *1000+a4(2) *100+a4(3) *10+a4(4); for i=1
:7 a5 = a33 - a44; %差 a1 = num2str(a5); %数值型转字符型 n = length(a1); %字符长度 for i=1
:n a2(i)=str2num(a1(i)); %将每一个字符依次转化为数值型,保存到a2数组 end disp([num2str(a33),’-‘,num2str(a44),’=’,num2str(a5)]); %显示 a3 = sort(a2,‘descend’); %从大到小排列 a33 = a3(1) *1000+a3(2) *100+a3(3) *10+a3(4); a4 = sort(a2,‘ascend’); %从小到大排列 a44 = a4(1) *1000+a4(2) *100+a4(3) *10+a4(4); end end if n==3 %三位数 a3 = sort(a2,‘descend’); %从大到小排列 a33 = a3(1) *100+a3(2) *10+a3(3) *1; a4 = sort(a2,‘ascend’); %从小到大排列 a44 = a4(1) *100+a4(2) *10+a4(3) *1; for i=1
:7 a5 = a33 - a44; a1 = num2str(a5); %数值型转字符型 n = length(a1); %长度 for i=1
:n a2(i)=str2num(a1(i)); %将每一个字符依次转化为数值型,保存到a2数组 end disp([num2str(a33),’-‘,num2str(a44),’=’,num2str(a5)]); %显示 a3 = sort(a2,‘descend’); %从大到小排列 a33 = a3(1) *100+a3(2) *10+a3(3) *1; a4 = sort(a2,‘ascend’); %从小到大排列 a44 = a4(1) *100+a4(2) *10+a4(3) *1; %三位数 end end
1701005489
1701005490
运行程序输出结果如下:
1701005491
1701005492
>>a = 6767; %974 7766-6677=1089 9810-189=9621 9621-1269=8352 8532-2358=6174 7641-1467=6174 7641-1467=6174 7641-1467=6174 >>a = 974; %6767 974-479=495 954-459=495 954-459=495 954-459=495 954-459=495 954-459=495 954-459=495
1701005493
1701005494
1701005495
1701005496
1701005498
我和数学有约:趣味数学及算法解析 3.3 3x+1问题
1701005499
1701005500
【问题】什么是3x+1问题?
1701005501
1701005502
【分析】
1701005503
1701005504
3x+1问题又叫Collatz猜想、Syracuse问题、Kakutani问题、Hasse算法和Ulam问题等等。后来,由于命名争议太大,干脆让谁都不沾光,直接叫做3x+1问题算了。
1701005505
1701005506
从任意一个正整数开始,重复对其进行下面的操作:
1701005507
1701005508
如果这个数是偶数,把它除以2;
1701005509
1701005510
如果这个数是奇数,则把它扩大到原来的3倍后再加1。
1701005511
1701005512
你会发现,序列最终总会变成4,2,1,4,2,1,……的循环。
1701005513
1701005514
例如,所选的数是67,根据上面的规则可以依次得到:
1701005515
1701005516
67,202,101,304,152,76,38,19,58,29,88,44,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1,4,2,1,……
1701005517
1701005518
数学家们试了很多数,没有一个能逃脱“421陷阱”。
1701005519
1701005520
采用MATLAB软件编程验证如下:
1701005521
[
上一页 ]
[ :1.701005472e+09 ]
[
下一页 ]