- 浏览: 36817 次
- 性别:
- 来自: 杭州
最新评论
package com.yao.Algorithms; import java.math.BigInteger; /** * * @author shuimuqinghua77 @date 2012-4-26下午02:33:04 * */ public class Problem25 { public static void main(String[] args) { /** * 下面是运用数学上的方式来破解这个1000位数的难题 * 只需要1ms */ /** * 但是Fibonacci sequence还有一个重要的性质就是 * an=1/√5 [(1/2+√5/2)^ n-(1/2-√5/2)^n] * * * 还有一个黄金比例的法则 * 即在较高的序列,两个连续的“斐波纳契数”的序列相互分割 将接近黄金比例(1.618:1或1:0.618)。 即 an=1.618*1/√5 [(1/2+√5/2)^ (n-1)-(1/2-√5/2)^(n-1)] 可以推出 [√5-(1-√5)/2*√5/1.618]an=(1/2+√5)^(n-1)(√5) 2边同时取以10为底的对数 lg(an)=(n-1)lg((1/2+√5))+lg√5-lg√5-(1-√5)/2*√5/1.618] 当lg(an)>=999时候 也就是an突破1000位的时候 */ long start1=System.currentTimeMillis(); double five=Math.sqrt(5); double factor1=five-(1-five)/2*five/1.618; double factor2=five; double factor3=0.5+five/2; double factor4=Math.log10(factor2)-Math.log10(factor1); for(int i=2;;i++){ double lg_an=Math.log10(factor3)*(i-1)+factor4; if(lg_an>=999) { System.out.println("结果是:"+i); break; } } long end1=System.currentTimeMillis(); System.out.println(end1-start1+"ms"); /** * 还有一种比较挫的做法就是使用计算机使用暴力破解 785ms */ long start=System.currentTimeMillis(); BigInteger fn=new BigInteger("0"); BigInteger fn_1=new BigInteger("1"); BigInteger fn_2=new BigInteger("1"); int count=2; while(fn.toString().length()!=1000){ fn=fn_1.add(fn_2); fn_2=fn_1; fn_1=fn; count++; } System.out.println(count); long end=System.currentTimeMillis(); System.out.println(end-start+"ms"); } }
发表评论
-
Problem26
2013-02-06 17:08 862A unit fraction contains 1 in t ... -
Problem24
2012-04-26 14:12 780package com.yao.Algorithms; ... -
Problem23
2012-03-18 13:29 902A perfect number is a number fo ... -
Problem22
2012-03-17 23:13 769Using names.txt (right click an ... -
Problem21
2012-03-11 20:44 1203Problem 21 05 July 2002 Let ... -
Problem20
2011-12-15 14:09 801package com.yao.shuimu.euler; ... -
Problem19
2011-12-09 14:07 718package com.shui.mu.yao.io.algo ... -
Problem18/Problem67
2011-12-04 20:20 892package com.yao.Algorithms; ... -
Problem16
2011-12-02 15:32 416package com.shui.mu.yao.io.algo ... -
Problem15
2011-11-29 23:28 530package com.yao.Algorithms; ... -
Problem14
2011-11-29 11:37 705package com.shui.mu.yao.io.algo ... -
Problem13_1
2011-11-21 14:07 588package yao.taobao.jj; publi ... -
Problem13
2011-11-19 23:51 565package com.yao.Algorithms; ... -
Problem12
2011-11-07 20:04 709package com.shui.mu.yao.io.algo ... -
Problem11
2011-11-06 19:38 1192package com.yao.Algorithms; ... -
Problem10
2011-11-03 20:14 411package com.shui.mu.yao.io.algo ... -
Problem9
2011-11-03 16:04 745package com.shui.mu.yao.io.algo ... -
Problem8
2011-11-03 12:38 590package com.shui.mu.yao.io.algo ... -
Problem7
2011-11-03 11:25 450package com.shui.mu.yao.io.algo ...
相关推荐
25. Routers process network, link and physical layers (layers 1 through 3). (This is a little bit of a white lie, as modern routers sometimes act as firewalls or caching components, and process ...
25. 连接种类:左外连接、内连接、交叉连接等(Problem 25) SQL 语言中有多种连接种类,包括左外连接、内连接、交叉连接等。 26. 创建表语句:CREATE TABLE 语句(Problem 26) CREATE TABLE 语句用于创建一个新...
- **编写算法**: 在第25页提到了算法的概念,算法是解决问题的精确步骤,编程的核心就是将算法转化为程序代码。 - **错误识别**: 第28页提到了识别隐藏错误,这是调试过程中的关键环节,意味着学习如何寻找和修正...
通过监测42个点,我们可以提取包括重心位置、运动轨迹在内的25个身体平衡特征。这些特征可能包括但不限于重心的前后、左右移动范围,步态的稳定性,以及各关节活动度等。通过构建特征提取模型,我们可以量化这些特性...
在这个"0-1-knapsack-problem-master (25).zip"压缩包中,很可能包含了一个C语言实现的0-1背包问题解决方案。C语言是一种强大的编程语言,特别适合处理这种需要高效计算的问题,因为它提供了低级别的内存操作和控制...
标题中的“25_programmer_must_know_the_problem.rar_The Word_笔试”指的是一个针对编程人员的资源压缩包,其中包含25个关键问题,这些问题对于程序员在面试和笔试中都具有很高的参考价值。"The Word"可能是指文档...
0-1 背包问题(0-1 Knapsack Problem)是计算机科学中的一个经典优化问题,尤其在算法设计和组合优化领域有着广泛的应用。它源于实际生活中的物品打包问题,目标是在有限的容量下,选取一组物品,使得它们的总价值...
例如,给定质数2, 3, 和 5,Hamming序列H(2, 3, 5)是2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, ...。题目要求我们找到H(p1, p2, p3)序列中的第i个元素,其中i是一个给定的正整数。 输入数据包括三...
### APIO2015 Problemset - Bali Sculptures #### 问题背景 在亚洲太平洋信息学奥林匹克(Asia-Pacific Informatics Olympiad,简称APIO)2015年的竞赛中,有一道名为“Bali Sculptures”的题目。这道题目的背景...
12. **MCP25XXFD CAN FD SPI API** 提供了详细的API接口文档,方便开发者编写驱动程序,实现与MCP2517FD的通信。 13. **相关文档** Microchip还提供了其他相关文档,包括应用笔记、用户指南等,帮助开发者全面...
C#,电话数字键盘问题(Mobile Numeric Keypad problem)的算法与源代码 电话数字键盘问题 提供移动数字键盘。您只能按向上、向左、向右或向下至当前按钮的按钮。不允许您按最下面一行的角点按钮(即.*和#)。 ...
这个项目的源代码"0-1-knapsack-problem-master (25)c.zip"提供了具体实现,读者可以通过阅读和分析代码,深入了解0-1背包问题的动态规划解决方案。同时,这也是一个很好的练习,可以帮助学习者提升算法理解和C语言...
20.1 For APZ 212 11/20/25/30/33 12 20.2 APZ 212 40 Restart/RELOAD/CP FAULT 14 20.3 APZ 212 50 RESTART/RELOAD/CP FAULT 16 21. APG40 related problem 28 21.1 These data must be provided for every trouble...
### Ulam's Problem:在没有反馈的情况下搜索与说谎者博弈 #### 一、问题背景与定义 Ulam的问题起源于斯坦尼斯拉夫·乌拉姆(Stanislaw Ulam)提出的一个智力游戏,该问题涉及到如何在面对可能的谎言回答时确定一...
##问题集#5 ###要求 编写一个函数alphabetSoup,它接受一个字符串参数并按字母顺序返回带有字母的字符串(即...如果 num 是 25,那么输出应该是 3,因为您可以使用 11、9 和 5 个硬币或使用 9、9 和 7 个硬币获得 25。
在Linux操作系统,特别是Ubuntu环境下,用户可能会遇到各种各样的问题,包括软件安装、系统配置、权限问题等。本文将详细探讨这些常见问题及其解决方案。 首先,`dpkg`是Ubuntu中的包管理工具,用于处理软件的安装...
《道路安全手册:实践者指南》是世界道路协会(PIARC)发布的一份关于交通安全问题的重要文献,旨在为专业人士提供全球战略视角。该手册强调了道路交通安全问题的严重性及其对公共健康、社会经济的巨大影响。...