原标题:水仙花数

近日,笔者的学生问了笔者这样一道题:

求满足的所有三位数,以及满足的所有四位数。

从解题角度来说,这题目做起来是比较繁琐的,但是这些数具有的奇妙性质,值得我们来对此加以研究

1³+5³+3³=1+125+27=153

3³+7³+0³=27+343+0=370

3³+7³+1³=27+343+1=371

4³+0³+7³=64+0+343=407

14+64+34+44=1634

84+24+04+84=8208

94+44+94+74=9497

55+45+75+45+85=54748

56+46+86+86+36+46=548834

这些等于各位数字n次方之和的n位数,我们称其为自幂数或者超完全数字不变数(pluperfect digital invariant, PPDI)。

由于其性质的形式,从自身出发,又回到了自身,由这种只钟爱自己的性质,所以我们又称其为自恋数(narcissistic number)。

在英语中,自恋(narcissistic)一词来源于希腊神话人物纳西索斯(Narcissus):

美少年纳西索斯(Narcissus)是河神(Cephissus)与林间仙女(Liriope)的儿子。他的出生伴随着一个来自先知Tiresias的奇特预言。预言说,如果纳西索斯想要长命百岁,那么他就决不能见到自己的影像。于是,带着这样一个预言,纳西索斯渐渐长大,成为全希腊最俊美的男子。无数的少女对他一见倾心,可他却无情地拒绝了所有的人。

伊可(Echo)本来也是一个美丽的山中仙女,但纳西索斯仍然像拒绝其他人一样拒绝了她。伊可十分伤心,整日在幽静的山林中流泪徘徊,不吃不喝,很快地消瘦下去。最后,她的身体终于完全消失,只剩下忧郁而轻柔的声音在山谷中回荡。无论是何人对她呼喊,她都只重复对方的话语,从不作自己的回答。此后,希腊人便用伊可的名字(Echo)来表示“回声”。

众神愤怒了,决定让纳西索斯去承受痛苦:爱上别人,却不能以被爱作为回报。有一天纳西索斯无意间来到一个池塘边。池塘的水清澈明净,如同一面光洁的镜子。纳西索斯俯身鞠水,却见到了自己在水中的倒影—— 一个比他以前见过的任何人都更加俊秀的少年。他疯狂地爱上了他,无数次将手伸入水中,想要拥抱自己的爱人,可每一次的水波荡漾都使他重新陷入绝望。他再也无法忍受这种痛苦,终于跳入池塘,溺水而死。出于同情,众神让他的身体化作一朵晶莹剔透,出水而立的水仙花(narcissus)。

于是,前辈研究者们给这种数起了一个好听的名字:水仙花数

显然,水仙花数的个数是有限个的,最先给出证明的是伯纳德

对于n位数:

于是10n-1≤Pn≤9×n9

显然,两个等号不可能同时成立

10n-1≤n≤9n

进而得到n≤60

即不存在60位以上的水仙花数

(当然,证明过程需要用到对数和函数性质,比较容易得到最后的结论,在此笔者不再加以赘述,有兴趣的读者可以自行证明)。

后来施瓦茨和纳尔逊又先后改进了伯纳德的结果,将上界进一步降低为n≤58。

当然,即使我们得到了n≤58的结论,想要一一求出所有的水仙花数仍然是一件很麻烦的事情,以前,找寻水仙花数的纪录一直由美国数学家纳尔逊所保持,他找到了一个10位的水仙花数:4679307774,由于在求解思路上的限制,对水仙花数的探索陷入了一个巨大的瓶颈。

然而,在21世纪,中国国防科技大学的刘江宁先生提出了一种新的思路:

一、,我们往往习惯从左边入手处理问题,而实际上,从右边入手处理问题会更加的简单。

二、转化问题,设中有个k0个0、k1个1、k2个2、……、k9个9,那么显然,k0+k1+k2+……+k9个9,显然在k0个0、k1个1、k2个2、……、k9个9所组成的所有n位数中,至多只有一个水仙花数,所以,我们通过对新的不等方程自然数解的寻找来减少在寻找水仙花数中的枚举次数。

三、当n充分大时,a1、a2、……、an中会出现很多个9,对此,刘先生提出了最大值次数限定策略,例如,当n=60,他证明了9至少出现了56次,这样就能大大减少较大时的可能情况,从而减少计算量。

根据上述思路,刘先生编制了相应的计算机程序,彻底解决了水仙花数的寻求问题,十进制中,水仙花数一共有88个,最大的是两个39位数。

然而,虽然刘先生解决了水仙花数的问题,但是我们仍然没有停下探索的脚步,我们发现,有一些数具有一些类似于水仙花数的性质,例如:

89=81+92

135=11+22+33

1676=11+62+73+64

or

13+33+63=224

23+43+43=136

数学无止境

我们永远不会停下探索的脚步

版权声明:本文为52数学网独家原创,版权归原作者所有。返回搜狐,查看更多

责任编辑:

计算机程序水仙花数,水仙花数相关推荐

  1. for循环,控制台输出所有的“水仙花数”水仙花数是一个三位数 水仙花数的个位、十位、百位的数字立方和等于原数

    /*         需求:在控制台输出所有的 "水仙花数"                          水仙花数是一个三位数                 水仙花数的个位 ...

  2. Java实现算法应用--水仙花数 水仙花数是一个3位数,每一位数的立方相加等于该数本身。

    Java实现算法应用–水仙花数 @author asus 水仙花数是一个3位数,每一位数的立方相加等于该数本身. 具体代码如下: package package6; /*** 算法应用--水仙花数* ...

  3. 用python输出所有的玫瑰花数_c语言输出所有得水仙花数,玫瑰花数和五角星数

    展开全部 水仙花数即2113三位的自幂数.所谓自幂数,就是指5261一个 n 位数 ( n≥41023 ),其每位上的数字的1653 n 次幂之和等于本身. 所以水仙花数,首先是三位数,形式为abc, ...

  4. 编写一个程序,打印所有的“水仙花数”“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身

    #include <stdio.h> main() {int a,b,c,d;for (a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c< ...

  5. 水仙花数 与 变种水仙花数 的求解 【C语言】

    目录 水仙花数 变种水仙花数 水仙花数 简介:水仙花数是自幂数中的一种,三位自幂数又被称为水仙花数. 补充:如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数. ...

  6. c语言n位水仙花数简书,Kotlin中函数式编程API(8)求阶乘和计算水仙花数

    求阶乘 计算水仙花数 前面介绍了很多函数,下面两个需求使用前面的函数将变得简单清晰. 一.求阶乘 求阶乘通常会使用递归函数调用,这比较影响性能,可以通过前面介绍的 reduce 函数实现. fun f ...

  7. 用js写出水仙花数,JS 水仙花数

    一.面试题 问:你知道水仙花数吧? 答:水仙?我对花不是很了解啊... 问:不是水仙花!是水仙花数,也就是三位数的自幂数. 答:emmmmmmmm 问:看来是不知道了.如果一个三位数,它每个位上的数字 ...

  8. C++中如何读取一个数的位数_C语言编写程序求水仙花数

    C语言编写程序求水仙花数 水仙花数是一个数学问题,其实质是一个三位数,个位数的立方加十位数的立方加百位数的立方之和等于这个三位数本身.例如153=1*1*1+5*5*5+3*3*3,即153=1+12 ...

  9. 打印水仙花数oracle,javaScript实现回文数、水仙花数判断和输出斐波那契数列

    javaScript实现回文数.水仙花数判断和输出斐波那契数列 发布时间:2020-07-22 01:15:37 来源:51CTO 阅读:422 作者:Cynthia_xie // 判断一个数是不是回 ...

最新文章

  1. Embarcadero Dev C++ 中文输出乱码
  2. 大数据学习路线copy自淘宝
  3. 阿里云OSS linux使用备忘录
  4. sql2005数据导入出错问题
  5. jwt令牌_JWT –生成和验证令牌–示例
  6. java在原数组中追加一个元素
  7. fatal: Path ‘XXX‘ is in submodule ‘XXX‘错误(path is in submodule)
  8. Set与WeakSet
  9. 谁不想写出干净的代码?7 个技巧,让你的同事爱上你的代码
  10. django multidb --- router
  11. 数字图像处理第三版4.8.4例子GLPF高斯低通滤波器matlab程序
  12. 基于SSM实现微博系统
  13. 关闭windows defender安全中心的方法
  14. submail 发送国际短信,国内短信,国际国内邮箱工具类
  15. 个人注册网站域名怎么注册?能注册哪些?
  16. Java代码实现阿里云视频上传
  17. 微信公众号及微信支付签名算法
  18. 阿里云官方 Redis 开发规范
  19. shareSDK判断是否安装微博客户端、qq客户端不好使,或分享无法调起微博、qq客户端。
  20. 【文本生成】评价指标:事实一致性Evaluating the Factual Consistency of Abstractive Text Summarization

热门文章

  1. 影像组学视频学习笔记(12)-支持向量机(SVM)参数优化(代码)、Li‘s have a solution and plan.
  2. html 可以折叠的表格,javascript – html5 – 如何折叠和扩展复杂的表格元素
  3. [Google API](3)创建搜索
  4. faster-rcnn网络
  5. wsdd文件是怎么生成的_Axis WSDD文件参考文档
  6. java代码内创建mysql索引_Java Mysql数据库创建视图、索引、备份和恢复
  7. 3ds max 把模型放置到坐标系中心(原点)
  8. loguru log 日志的使用
  9. 【node】Sequelize常用操作、基本增删改查
  10. SPP-Net 是怎么让 CNN 实现输入任意尺寸图像的?