加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

寻找巧得很的10位数(2LOGO解)

(2022-10-17 10:40:59)
标签:

林老师

pclogo

mswlogo

logo博客

fmslogo

分类: WinXP~7~8~10运行Logo语言
寻找巧得很的10位数(2 LOGO解)
寻找巧得很的10位数(2LOGO解)
    这个巧得很的10位数说的是:一个10位数,正好包含了0~9所有的数字,既没有重复的数字,也没有缺失的数字。而这个10位数却正好是一个数的平方值。世界上的事情真有那么凑巧?!这还真的是有。例如上图中的那个例子。用笔算或是计算器来计算要找到这样的数字组合真是难得好比登天!10位数差不多有9亿个,一个个地去验证,可真的要花好多的时间。但是千万不要以为没有人做这样的事,有些人就是专门研究这些数字组合来消遣的。但是如果用编程来遍寻这些神秘的组合就快得多了。使用LOGO语言编程就行——但是只能用MWLogo-FMSLogo来编程求解,因为这两种编程语言都允许不超过15位数的数字避开“科学记数法”。用PCLogo可不行:PCLogo会将7285134609转换成7.285E+09这样的“科学计数法”,程序就编写不下去了。下面的程序是使用MSWLogo-FMSLogo编写的。

TO QM10
  ;sqrt(1023456789)=31991.51...
  ;sqrt(9876543210)=99380.788..
  MAKE "T1 TIMEMILLI     ;启动计时
  MAKE "N 0
  FOR[I 31991 99380][    ;在可能的范围内寻找
    MAKE "J :I*:I        ;求出平方数
    IF 10=COUNT :J[      ;这个平方数必须有10 个数位
      MAKE "J REMDUP :J  ;去掉数字相同的数位
      IF 10=COUNT :J[    ;这时如果还是10位就已经找到了一个答案
        MAKE "N :N+1     ;答案个数累加1
        (PR :N CHAR 41 :J CHAR 61 :I CHAR 42 :I)]]] ;输出答案
  MAKE "T2 TIMEMILLI             ;完成计算计时
  (PR "耗时 (:T2-:T1)/1000 "秒)  ;总共耗用的秒数
End

    这里需要解释一下3199199380的来历。这是最小10位数及最大10位数的算术平方根。在这个范围内寻找答案,可以减少很多的计算工作量。
    计算的工作原理:
    先逐个计算从31991到99380的平方值;
    如果算出来的数字正好是10个数位、
   再去掉相同的数位,
   如果这是还是个10位数——那么就找到答案了。
   现在将答案输出。

    总共找到的答案有87组。耗时6.63秒(不同的计算机时间会不相同)。

答案如下:
QM10
1 ) 1026753849 = 32043 * 32043
2 ) 1042385796 = 32286 * 32286
3 ) 1098524736 = 33144 * 33144
4 ) 1237069584 = 35172 * 35172
5 ) 1248703569 = 35337 * 35337
6 ) 1278563049 = 35757 * 35757
7 ) 1285437609 = 35853 * 35853
8 ) 1382054976 = 37176 * 37176
9 ) 1436789025 = 37905 * 37905
10 ) 1503267984 = 38772 * 38772
11 ) 1532487609 = 39147 * 39147
12 ) 1547320896 = 39336 * 39336
13 ) 1643897025 = 40545 * 40545
14 ) 1827049536 = 42744 * 42744
15 ) 1927385604 = 43902 * 43902
16 ) 1937408256 = 44016 * 44016
17 ) 2076351489 = 45567 * 45567
18 ) 2081549376 = 45624 * 45624
19 ) 2170348569 = 46587 * 46587
20 ) 2386517904 = 48852 * 48852
21 ) 2431870596 = 49314 * 49314
22 ) 2435718609 = 49353 * 49353
23 ) 2571098436 = 50706 * 50706
24 ) 2913408576 = 53976 * 53976
25 ) 3015986724 = 54918 * 54918
26 ) 3074258916 = 55446 * 55446
27 ) 3082914576 = 55524 * 55524
28 ) 3089247561 = 55581 * 55581
29 ) 3094251876 = 55626 * 55626
30 ) 3195867024 = 56532 * 56532
31 ) 3285697041 = 57321 * 57321
32 ) 3412078569 = 58413 * 58413
33 ) 3416987025 = 58455 * 58455
34 ) 3428570916 = 58554 * 58554
35 ) 3528716409 = 59403 * 59403
36 ) 3719048256 = 60984 * 60984
37 ) 3791480625 = 61575 * 61575
38 ) 3827401956 = 61866 * 61866
39 ) 3928657041 = 62679 * 62679
40 ) 3964087521 = 62961 * 62961
41 ) 3975428601 = 63051 * 63051
42 ) 3985270641 = 63129 * 63129
43 ) 4307821956 = 65634 * 65634
44 ) 4308215769 = 65637 * 65637
45 ) 4369871025 = 66105 * 66105
46 ) 4392508176 = 66276 * 66276
47 ) 4580176329 = 67677 * 67677
48 ) 4728350169 = 68763 * 68763
49 ) 4730825961 = 68781 * 68781
50 ) 4832057169 = 69513 * 69513
51 ) 5102673489 = 71433 * 71433
52 ) 5273809641 = 72621 * 72621
53 ) 5739426081 = 75759 * 75759
54 ) 5783146209 = 76047 * 76047
55 ) 5803697124 = 76182 * 76182
56 ) 5982403716 = 77346 * 77346
57 ) 6095237184 = 78072 * 78072
58 ) 6154873209 = 78453 * 78453
59 ) 6457890321 = 80361 * 80361
60 ) 6471398025 = 80445 * 80445
61 ) 6597013284 = 81222 * 81222
62 ) 6714983025 = 81945 * 81945
63 ) 7042398561 = 83919 * 83919
64 ) 7165283904 = 84648 * 84648
65 ) 7285134609 = 85353 * 85353
66 ) 7351862049 = 85743 * 85743
67 ) 7362154809 = 85803 * 85803
68 ) 7408561329 = 86073 * 86073
69 ) 7680594321 = 87639 * 87639
70 ) 7854036129 = 88623 * 88623
71 ) 7935068241 = 89079 * 89079
72 ) 7946831025 = 89145 * 89145
73 ) 7984316025 = 89355 * 89355
74 ) 8014367529 = 89523 * 89523
75 ) 8125940736 = 90144 * 90144
76 ) 8127563409 = 90153 * 90153
77 ) 8135679204 = 90198 * 90198
78 ) 8326197504 = 91248 * 91248
79 ) 8391476025 = 91605 * 91605
80 ) 8503421796 = 92214 * 92214
81 ) 8967143025 = 94695 * 94695
82 ) 9054283716 = 95154 * 95154
83 ) 9351276804 = 96702 * 96702
84 ) 9560732841 = 97779 * 97779
85 ) 9614783025 = 98055 * 98055
86 ) 9761835204 = 98802 * 98802
87 ) 9814072356 = 99066 * 99066
耗时 6.63 秒

    这可是非常快的速度。如果你是笔算天才,1秒钟可以计算一个算式,每天工作10个小时,大约需要694年!这是你好几代人的工作量。

我们还是学习LOGO编程来计算吧!

寻找巧得很的10位数(2LOGO解)

寻找巧得很的10位数(2LOGO解)

寻找巧得很的10位数(2LOGO解)

寻找巧得很的10位数(2LOGO解)










                                 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有