|
发表于 25-2-2009 12:45 PM
|
显示全部楼层
这些的确是很有趣的题目 。。。LZ很不错的介绍啊。
楼主,应该是指楼的主人 。。。就是开帖的那位啦。 |
|
|
|
|
|
|
|
楼主 |
发表于 25-2-2009 12:49 PM
|
显示全部楼层
回复 23# img3nius 的帖子
一个把搜查空间减少的方法就是只检查从 2 到 sqrt(600851475143)
的 prime numbers. 而这个从 2 到 sqrt(600851475143) prime number list,则需要写另外一个程序来造出。一个很古老的方法是 Sieve of Erathothenes,不妨到 http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes 去看看。
p/s: 大部份的人也是边玩边学的
[ 本帖最后由 铁蛋 于 25-2-2009 12:56 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 25-2-2009 07:15 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 25-2-2009 08:53 PM
|
显示全部楼层
记得你,不敢忘记!
17题已经通过最原始的方法解决
我是用笔算的,反正有规律
慢慢算就算出来了
这样:1~9,10~19,20~99,1~99,100~999,1~1000
有些题目很不好玩(17题)
有些则很有意义(上面那个求解空间大的题目)
还有那种要很大的数字的每一位digit
那个以前看过怎样解
现在终于自己来了
不过,我个人认为有些题目根本就是浪费时间精神
完全是在玩大digit而已。 |
|
|
|
|
|
|
|
发表于 26-2-2009 02:07 PM
|
显示全部楼层
再问...关于题目2
Find the sum of all the even-valued terms in the sequence which do not exceed four million.
这里是指斐波那契数的偶数数列之和不超过4m?
或者是第偶数数列之值不超过4m?
比方说
1,2,3,5,8,13,21,34....
低于40之偶数数列之和
是
2+5+13=20 <=40
或者是
2+5+13+34=54 , 34<=40
?? |
|
|
|
|
|
|
|
楼主 |
发表于 26-2-2009 03:31 PM
|
显示全部楼层
回复 25# img3nius 的帖子
Fibonacci Sequence: 1,2,3,5,8,13,...,T(n),
T(n) < 4 000 000
再从这个序列找出那些偶数的和。 |
|
|
|
|
|
|
|
发表于 26-2-2009 09:07 PM
|
显示全部楼层
Problem 26
13 September 2002
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given:
1/2 = 0.5
1/3 = 0.(3)
1/4 = 0.25
1/5 = 0.2
1/6 = 0.1(6)
1/7 = 0.(142857)
1/8 = 0.125
1/9 = 0.(1)
1/10 = 0.1
Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle.
Find the value of d 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part.
这题想不通!
大家有什么想法? |
|
|
|
|
|
|
|
发表于 28-2-2009 10:13 PM
|
显示全部楼层
这里有多少人是在做着这些问题的?
有许多问题我完全没头绪该如何开始....
也有些问题因为误解题意
让我一直找不着正确答案 |
|
|
|
|
|
|
|
发表于 3-3-2009 10:33 AM
|
显示全部楼层
关于题目3(largest prime factor)
我找到
600851475143=71*8462696833
但是我给与答案 8462696833 (我test了是质数)
却是错的= =?
还是我的程序有问题?
8462696833不是质数吗? |
|
|
|
|
|
|
|
发表于 3-3-2009 10:40 AM
|
显示全部楼层
原帖由 铁蛋 于 26-2-2009 03:29 PM 发表
Fibonacci Sequence: 1,2,3,5,8,13,...,T(n)
T(n) < 4 000 000 , 再从这个序列找出那些偶数的和。
我找到的n=偶数
sumT(n)= 2+
5+
13+
34+
89+
233+
610+
1597+
4181+
10946+
28657+
75025+
196418+
514229+
1346269+
3524578=
5702886
答案错了
我错在哪里@@? |
|
|
|
|
|
|
|
楼主 |
发表于 3-3-2009 02:25 PM
|
显示全部楼层
回复 30# img3nius 的帖子
不对吧,偶数是 even numbers,
2 + 8 + 34 + 144 + ... + 3524578 = ? |
|
|
|
|
|
|
|
楼主 |
发表于 3-3-2009 02:35 PM
|
显示全部楼层
回复 27# puangenlun 的帖子
我的做法是:
1)对每个 1 < d < 1000 算6^5小位数。
2)用一个6个数字的"MOTIF"(第1到第个6小数位),从第7到第12小数位开始对查。
3)如果这6个数字完全和吻合,停止计算,报告停止的位置。
4)如果这6个数字不完全吻合,继续对查第13到18的小数位 ...
要用多少个数字的 MOTIF,没有一个标准,只是不能太短。
[ 本帖最后由 铁蛋 于 3-3-2009 02:37 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 3-3-2009 02:52 PM
|
显示全部楼层
回复 29# img3nius 的帖子
要找600851475143 的 prime factors,只需要检查到 sqrt(600851475143) 的 prime numbers. 在这个集合里,除了600851475143 没有余的 prime numbers 就是你要的 prime factors,
然后再找它们的最大值就解决了。
这种题目要先写一个程序列出需要用到 prime numbers. |
|
|
|
|
|
|
|
发表于 4-3-2009 07:55 AM
|
显示全部楼层
你的问题二和问题三确实是错了
8462696833=10086647*839
至于问题2,需要看你的program才知道!
#27的问题26原来只是依赖于小学知识而已!
想了几天才恍然大悟! |
|
|
|
|
|
|
|
发表于 4-3-2009 02:31 PM
|
显示全部楼层
原帖由 puangenlun 于 4-3-2009 07:55 AM 发表
你的问题二和问题三确实是错了
8462696833=10086647*839
==这个很明显是我的编程有问题了
因为我test到8462696833是质数@@需要重做了
至于问题2,需要看你的program才知道!
==这个很明显是我的编程有问题了
因为我test到8462696833是质数@@需要重做了
我确实错了= ="
我是将所有n=偶数加起来
而不是T(n)=偶数,
哈哈
-------------------------
稍微改了改编程
两题都做对了
这里我又有点问题
普通电脑的c++能记录的数值能到多大?
比如题目10
当和数超过某一数值时
我的答案会从-xxxxxxxxxx再开始加??
[ 本帖最后由 img3nius 于 4-3-2009 02:52 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 4-3-2009 04:43 PM
|
显示全部楼层
后面有些题目会牵扯到很大的数
比方说1*10^200
这样的话就不可以按照老方法来做
(据说用python可以高高精度)
这里就牵涉到一些技巧了! |
|
|
|
|
|
|
|
发表于 4-3-2009 04:48 PM
|
显示全部楼层
原帖由 铁蛋 于 3-3-2009 02:35 PM 发表
我的做法是:
1)对每个 1 < d < 1000 算6^5小位数。
2)用一个6个数字的"MOTIF"(第1到第个6小数位),从第7到第12小数位开始对查。
3)如果这6个数字完全和吻合,停止计算,报告停止的位置。
4) ...
我的做法跟你的是一样的
不过看起来比你的简单一些
一句话:记录reminder!
reminder的范围在0~999之间
所以最长的cycle小于1000
根据reminder的记录
比较两个相同的reminder出现的位置
即可知道cycle的长度了! |
|
|
|
|
|
|
|
发表于 5-3-2009 01:29 PM
|
显示全部楼层
我想问
如果输入某数值
要如何用c++将所有位数的可能性排列列出来?
如输入
123
输出
123 132 213 231 312 321
?? |
|
|
|
|
|
|
|
发表于 5-3-2009 05:42 PM
|
显示全部楼层
这道题目我是用笔算出来的
用排列组合的知识可以一个个位数算出来 |
|
|
|
|
|
|
|
楼主 |
发表于 5-3-2009 05:58 PM
|
显示全部楼层
回复 38# img3nius 的帖子
你可以去 GOOGLE 搜索 C++ Library,应该是有写好的程序来列出 Permutations。其中一个方法是用隔壁交换 (Adjacent swapping) 的方式来列出。
[ 本帖最后由 铁蛋 于 5-3-2009 05:59 PM 编辑 ] |
|
|
|
|
|
|
| |
本周最热论坛帖子
|