起源:Srinivasa Ramanujan是一个因他在数字上的天分而出名的印度数学家。有一天,英国数学家G.H.Hardy来拜访他,Hardy提到自己乘坐的出租车标有一个相当无聊的数字1729。Ramanujan 当即回答道,“不,Hardy!不,Hardy!这是一个非常有趣的数字!”。Ramanujan说:“对1729这个数字,存在2组不同的数,且每组只有2个数值,每一组数值的立方和等于1729,且1729是能够被两组不同的数按上述条件表达的数中最小的那个!”。
要求:验证这句话是否正确。程序将整数N作为输入,按一定格式返回所有能够被上述方法表示的小于或等于N的整数。换句话说,就是找到4个不同的正整数a、 b、 c、 d,且满足a3+b3=c3+d3
思路:利用四个循环,使用枚举的思想从a=1,b=1,c=2,d=2开始对数据一个一个试错。
代码:

def ramanujan(n):results = []for a in range(1, n+1):a3 = pow(a, 3)if a3 > n:breakfor b in range(a, n+1):b3 = pow(b, 3)if b3 > n:breakfor c in range(a+1, n+1):c3 = pow(c, 3)if c3 > n:breakfor d in range(c, n+1):d3 = pow(d, 3)if d3 > n:breakelif a3 + b3 == c3 + d3:start = c3 + d3new = "{} = {}^3 + {}^3 = {}^3 + {}^3".format(start, a, b, c, d)results.append(new)breakelse:continuereturn results

遇到的问题:之前有另外一种思路:从1开始,到输入的N结束,测试之间每一个数字num,就相当于从a=1,b=1开始,解方程num=a3+x3,很明显,x从b开始应当小于三次根号下num。所以,当x大于三次根号下num时,a加上1,直到找到这两个数字,然后从c=a+1,d=1(因为四个数不相等,又不存在num=a3+b3=a3+d3(b≠d))开始,寻找另一组数字。事实上,这个思路是可行的,唯一的问题:执行所用的时间太久,会造成运行超时的结果(至少运行时的直观感受是这样的,提交后的反馈也是这样的,),最后,通过请教老师,得到上面的那种思路。

寻找拉马努金数(Python实现)相关推荐

  1. MATLAB寻找拉马努金数(出租车数):T=a3+b3=c3+d3.(在矩阵中搜索,不用无脑循环)

    拉马努金,是一个在数字上极具天赋的印度数学家.在和朋友的对话中,朋友谈到一个出租车的车牌号是毫无趣味的1729,他立刻反映到说1729可以表示为两组不同的数,并且每组都是两个数的立方和. 出租车数的定 ...

  2. 权重随机抽奖, 拉马努金数

    一 权重随机抽奖 我的理解是 5权重概率是4权重概率的2倍,是3权重概率的4倍,那这不就是2的阶乘嘛 思路:循环权重,生成对应的随机比例,然后将这个比例值添加到总随机数上进行随机 import ran ...

  3. java计算:拉马努金数

    前言 计算这些数 a^3 + b^3 = c^3 + d^3=N 解决 public static void main(String[] args) {//多少数内int num = 100;//起始 ...

  4. 使用Python通过拉马努金公式快速求π

    使用Python通过拉马努金公式快速求π 一.前言 π是一个数学常数,定义为:圆的周长与直径的比值. π是一个无理数,也是一个超越数,它的小数部分无限不循环. π可以用来精确计算圆周长.圆面积.球体积 ...

  5. 使用Python实现拉马努金的三角函数正弦公式

    最近其实是在看<数学女孩>的书籍,看着看着觉得中间的故事情节确实是累赘了.切换一下思维,找来了之前看过的拉马努金的故事.看到了其中的公式之后,简单实用程序实现了一下,做一下简单的验证. 在 ...

  6. 拉马努金,天才之超越

    作者:梁志凡 2013-02-01 13:11:02来源:南方周末 标签 拉马努金 印度之子 数学天才 这位泰戈尔的同胞来自印度南端的泰米尔纳德邦,从未接受过正规数学训练的他具有惊人的数学直觉,独立发 ...

  7. 拉马努金:“与神对话”的数学天才

    不管你 一个无法表达神的思想的方程, 对我而言毫无意义 -- 斯里尼瓦瑟·拉马努金 本文摘自人民邮电出版社图灵文化出版的图书<悠扬的素数:二百年数学绝唱黎曼假设> 当哈代和利特尔伍德步履维 ...

  8. “神奇”的拉马努金矩阵

    我们先来聊聊拉马努金. 斯里尼瓦瑟·拉马努金(泰米尔语:ஸ்ரீனிவாஸ ராமானுஜன் ஐயங்கார்,ISO 15919转写:Srīṉivāsa Rāmāṉujan Aiyaṅkār,又译 ...

  9. 从拉马努金到张益唐——数学是一个整体

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 分享到: ...

最新文章

  1. 关注Cortex-M处理器,M0、M3、M4简单对比
  2. 十四、linux 静态/动态申请字符设备号
  3. Google C++ 编码规范
  4. Monkey使用遇到的问题集合
  5. 家族关系查询系统程序设计算法思路_七大查找算法(附C语言代码实现)
  6. Xshell中用./startup.sh启动时候提示权限不够
  7. 20200909:链表类题目集合下
  8. python爬虫项目报告需求分析_网络爬虫需求分析报告
  9. 给推荐系统加入先验知识的方法总结
  10. 南京工业大学计算机考研调剂,2020年南京工业大学考研调剂信息
  11. 【Excel】根据空格拆分单元格
  12. 论灾备之重要性:七场无法预见的数据中心灾难
  13. 移动安全 第六天-Iot安全
  14. 中联通宣布3G业务10月1日正式商用 套餐共分九档
  15. C语言:二维数组及其定义
  16. win7自动关机(win7自动关机)
  17. 主目录中文路径名转英文
  18. currentFrame / totalFrames / framesLoaded
  19. php redis中set、setex、setnx、getSet的区别
  20. 《再别康桥》(徐志摩)

热门文章

  1. 汇编语言 求三个数中最大值,结果存入MAX单元
  2. 互联网时代,学什么专业就业好?
  3. 什么是软件开发脚手架,为什么需要脚手架,常用的脚手架有哪些
  4. Latex之竖排表格
  5. 打卡训练绘制四叶风轮
  6. 考计算机证书多少钱 二级计算机证培训费用是多少
  7. C语言——计算2的N次方
  8. 解释结构模型ISM-1-1
  9. 【量化笔记】Markowitz模型的python实现
  10. c语言习题---(循环语句)