拉马努金的整数拆分全排列JAVA实现非递归
拉马努金的整数拆分全排列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实现非递归相关推荐
- 2020牛客国庆集训派对day3 I.Rooted Tree(哈代-拉马努金拆分数列)
2020牛客国庆集训派对day3 I.Rooted Tree(哈代-拉马努金拆分数列) 题目 https://ac.nowcoder.com/acm/contest/7830/I 题意 给你n个点,问 ...
- 传奇数学家拉马努金留下的数学神谕,解开了多年悬而未决的神秘难题
◆ ◆ ◆ 序 印度数学奇才斯里尼瓦瑟· 拉马努金在短短的一生中写下了大量论文,虽然多数文章在生前未得以发表,但借助其中一些文章中的全新见解,数学家肯恩· 小野解开了长久以来悬而未决的神秘数学难题. ...
- 从拉马努金到张益唐——数学是一个整体
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 分享到: ...
- 拉马努金,天才之超越
作者:梁志凡 2013-02-01 13:11:02来源:南方周末 标签 拉马努金 印度之子 数学天才 这位泰戈尔的同胞来自印度南端的泰米尔纳德邦,从未接受过正规数学训练的他具有惊人的数学直觉,独立发 ...
- 使用Python通过拉马努金公式快速求π
使用Python通过拉马努金公式快速求π 一.前言 π是一个数学常数,定义为:圆的周长与直径的比值. π是一个无理数,也是一个超越数,它的小数部分无限不循环. π可以用来精确计算圆周长.圆面积.球体积 ...
- 拉马努金:“与神对话”的数学天才
不管你 一个无法表达神的思想的方程, 对我而言毫无意义 -- 斯里尼瓦瑟·拉马努金 本文摘自人民邮电出版社图灵文化出版的图书<悠扬的素数:二百年数学绝唱黎曼假设> 当哈代和利特尔伍德步履维 ...
- 拉马努金的圆周率计算公式
拉马努金的几个神仙公式.据说他的论文里一共发表了14条圆周率的计算公式,但目前只收集到十个. 1π=18∑m=0∞(20m+3)(−1)m(4m)!(42)4m(m!)41π=123∑m=0∞(8m+ ...
- “神奇”的拉马努金矩阵
我们先来聊聊拉马努金. 斯里尼瓦瑟·拉马努金(泰米尔语:ஸ்ரீனிவாஸ ராமானுஜன் ஐயங்கார்,ISO 15919转写:Srīṉivāsa Rāmāṉujan Aiyaṅkār,又译 ...
- 【资料】【哈代/拉马努金】悼文
斯里尼瓦萨·拉马努金,1917年进入英国皇家学会,1920年4月26日,逝世于贡伯戈纳姆.他不是个爱谈自己的人,直到最近,我对他的早年生涯都所知甚少.R. 拉马钱德拉·拉奥和P·V·塞舒·耶尔,两位拉 ...
最新文章
- 一文读懂Python版的十大经典排序算法(附动图演示)
- SQL Server 2008 R2 安装时提示“Reporting Services目录数据库文件存在”
- JQuery------鼠标双击时,不选中div里面的文字
- Coriant助力Aureon部署100Gbps光纤网络
- POJ 2259 team queue团队排队问题
- Replication的犄角旮旯(一)--变更订阅端表名的应用场景
- JS:1.什么是JavaScript?
- 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游景点酒店预订网站设计
- c+调用java编写mq_C语言实现mq收发数据的函数
- idea插件安装在哪个目录_从零开始编写自己需要的IntelliJ IDEA 插件
- 经典排序算法(二十二)--图书馆排序(Library Sort)
- 不能从远程创建com+对象_链路追踪SkyWalking源码分析——Collector Remote远程通信服务...
- JAVA的DES加密解密在windows上测试一切正常,在linux上异常
- c语言程序如何生成软件,用c语言编写的程序怎么样生成可执行软件。
- c语言必背代码入门电子书下载,c语言初学必背代码.pdf
- Java毕设项目——大学生社团管理系统(java+SSM+Maven+Mysql+Jsp)
- 学会用CUPS管理打印机
- 数据仓库面试题-初级
- 个人邮箱Outlook登录入口在哪?遇到登录邮箱服务器配置错误的解决办法
- 转:修改ETM,用Ogre实现《天龙八部》地形与部分场景详解