拉马努金的整数拆分全排列JAVA实现非递归

点这里:

递归方式

结果是:组合成100的可能性共有:190569292种!!
不做详细说明了,需要看文字描述的,点上面链接跳转递归方式,查看详细说明
来,直接上代码

/*** * @author An* 拉马努金的整数拆分**/
public class Test04 {public static void main(String[] args) {List list= new ArrayList<Long>();for (int i = 0; i <= 100; i++) {f1(list,i);}System.out.println(list);System.out.println("组合成"+(list.size()-1)+"的可能性共有:"+list.get(list.size()-1)+"种!!");}private static void f1(List<Long> list,int i) {long result=0;int count = 1;//表示循环的次数,用来控制下标int n =1;//表示当前下标下,应该传入的数boolean flag = true;//控制加减,true=+,false= -if(i==0||i==1) {list.add(1L);//0和1的拆分次数固定是1种,也是递归的出口}else {while(i-n>=0) {if(count==1) {                 result +=list.get(i-n);count++;//下标置为第二次n= count;//第二次应该减掉的数//count=1的时候,表示循环刚开始,应该添加i-n(默认初始值1)}else if(count==2) {result +=list.get(i-n);count++;//下标继续自增n =count*2-1;//第三次下标预设flag=!flag;//此时修改标志位,false=减少
//count=2,循环开始第二次,第一个已添加,第二是i-2,}else {if(count%2!=0) {//求模,可以知道是单数or双数,单数无需修改标志位result=(flag==true ? result+list.get(i-n) : result-list.get(i-n));//三目运算,根据标志位,决定是+是-count++;//标志位继续增加n +=count/2;//后面的单数规律。}else {//求模,可以知道是单数or双数,单数无需修改标志位result=(flag==true ? result+list.get(i-n) : result-list.get(i-n));count++;//标志位继续增加n +=count;//后面的双数规律flag = !flag;//双数后要修改标志位}}}list.add(result);}}
}

若有不足之处,望请指出~~~~

结果是:组合成100的可能性共有:190569292种!!

拉马努金的整数拆分全排列JAVA实现非递归相关推荐

  1. 2020牛客国庆集训派对day3 I.Rooted Tree(哈代-拉马努金拆分数列)

    2020牛客国庆集训派对day3 I.Rooted Tree(哈代-拉马努金拆分数列) 题目 https://ac.nowcoder.com/acm/contest/7830/I 题意 给你n个点,问 ...

  2. 传奇数学家拉马努金留下的数学神谕,解开了多年悬而未决的神秘难题

    ◆ ◆ ◆ 序 印度数学奇才斯里尼瓦瑟· 拉马努金在短短的一生中写下了大量论文,虽然多数文章在生前未得以发表,但借助其中一些文章中的全新见解,数学家肯恩· 小野解开了长久以来悬而未决的神秘数学难题. ...

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

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

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

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

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

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

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

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

  7. 拉马努金的圆周率计算公式

    拉马努金的几个神仙公式.据说他的论文里一共发表了14条圆周率的计算公式,但目前只收集到十个. 1π=18∑m=0∞(20m+3)(−1)m(4m)!(42)4m(m!)41π=123∑m=0∞(8m+ ...

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

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

  9. 【资料】【哈代/拉马努金】悼文

    斯里尼瓦萨·拉马努金,1917年进入英国皇家学会,1920年4月26日,逝世于贡伯戈纳姆.他不是个爱谈自己的人,直到最近,我对他的早年生涯都所知甚少.R. 拉马钱德拉·拉奥和P·V·塞舒·耶尔,两位拉 ...

最新文章

  1. 一文读懂Python版的十大经典排序算法(附动图演示)
  2. SQL Server 2008 R2 安装时提示“Reporting Services目录数据库文件存在”
  3. JQuery------鼠标双击时,不选中div里面的文字
  4. Coriant助力Aureon部署100Gbps光纤网络
  5. POJ 2259 team queue团队排队问题
  6. Replication的犄角旮旯(一)--变更订阅端表名的应用场景
  7. JS:1.什么是JavaScript?
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游景点酒店预订网站设计
  9. c+调用java编写mq_C语言实现mq收发数据的函数
  10. idea插件安装在哪个目录_从零开始编写自己需要的IntelliJ IDEA 插件
  11. 经典排序算法(二十二)--图书馆排序(Library Sort)
  12. 不能从远程创建com+对象_链路追踪SkyWalking源码分析——Collector Remote远程通信服务...
  13. JAVA的DES加密解密在windows上测试一切正常,在linux上异常
  14. c语言程序如何生成软件,用c语言编写的程序怎么样生成可执行软件。
  15. c语言必背代码入门电子书下载,c语言初学必背代码.pdf
  16. Java毕设项目——大学生社团管理系统(java+SSM+Maven+Mysql+Jsp)
  17. 学会用CUPS管理打印机
  18. 数据仓库面试题-初级
  19. 个人邮箱Outlook登录入口在哪?遇到登录邮箱服务器配置错误的解决办法
  20. 转:修改ETM,用Ogre实现《天龙八部》地形与部分场景详解

热门文章

  1. 调音台中英文对照表!!
  2. 沉睡者IT - 互联网赚钱到底应该怎么做?这些赚钱思维你具备几个?
  3. Windows桌面整理
  4. poj2331 (IDA*)
  5. 吴恩达机器学习Day2
  6. 计算机软考铁路不认,我报软考了
  7. MySql主从复制实战及排坑说明
  8. English - 常用口语
  9. c语言习题---(循环语句)
  10. iOS苹果内购流程(Apple Pay)