水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
首页
|
上页
|
下页
|
尾页
|
3/4
|
转到
主题:转个题:1到100中找10个数使其倒数和为1
20楼
|
philbloo
|
2024-02-25 00:48:16
|
只看此ID
上面有typo 应该是\prod PQ + \prod QR + \prod PQ = L
--
FROM 37.136.230.*
21楼
|
foliver
|
2024-02-25 08:23:24
|
只看此ID
其实100误导了大家。题目扩展一下,从所有自然数中取出10个不同的数字,使它们的倒数和为1,有多少中取法?
假定10个数字x1,x2..,x10递增
x1显然只能在2..10
假设已经取了n个数字,那么这n个数字倒数和与1的差为r。显然第n+1个分数最大为r,由于还有10-n个数字要选,故第n+1分数最小也要为r/(10-n),列出
r/(10-n)<=1/x[n+1]<=r
再结合
x[n]<x[n+1]<=100
可以得到x[n+1]上下限
前面9个选定后,就判断存不存在第10个数。直接计算剩余r,计算1/r。只需判定附近的2个整数是否满足。或者其他你喜欢的方式。
【 在 z16166 的大作中提到: 】
: 你的限定条件不等式,是怎样的?
:
:
: ...................
--来自微微水木3.5.14
--
FROM 183.193.19.*
22楼
|
milksea
|
2024-02-25 08:51:11
|
只看此ID
都要这样确定上下界的,一般放在穷尽剪枝里
【 在 foliver 的大作中提到: 】
: 其实100误导了大家。题目扩展一下,从所有自然数中取出10个不同的数字,使它们的倒数和为1,有多少中取法?
:
: 假定10个数字x1,x2..,x10递增
: ...................
--
FROM 114.249.226.*
23楼
|
z16166
|
2024-02-25 10:57:56
|
只看此ID
那差不多,所以都是20多秒
加上17、18楼两位说的,不知道可以再加速到多少,有时间可以玩一下
【 在 foliver 的大作中提到: 】
: 其实100误导了大家。题目扩展一下,从所有自然数中取出10个不同的数字,使它们的倒数和为1,有多少中取法?
: 假定10个数字x1,x2..,x10递增
: x1显然只能在2..10
: ...................
--
FROM 123.119.160.*
24楼
|
milksea
|
2024-02-25 13:07:38
|
只看此ID
久了点,可能不仅基本的剪枝不足,循环里面运算也太繁琐了。你的代码就少一类剪枝,要同时排除过大和过小的部分和。
你的代码在我电脑上是11秒,我自己目前是不到一秒,我觉得还是慢。
【 在 z16166 的大作中提到: 】
: 那差不多,所以都是20多秒
:
: 加上17、18楼两位说的,不知道可以再加速到多少,有时间可以玩一下
: ...................
--
修改:milksea FROM 114.242.250.*
FROM 114.242.250.*
25楼
|
webhost
|
2024-02-25 13:43:27
|
只看此ID
有人能写出通用代码吗?即在自然数中选取M个不同的数,使其倒数和为N。M、N也均为自然数。
【 在 z16166 的大作中提到: 】
: 在整数1到100中找10个不同的数,使其倒数和为1。求所有的解。
: 10个数只是顺序不同的话,视为相同的解。
--
FROM 39.184.39.*
26楼
|
milksea
|
2024-02-25 13:46:08
|
只看此ID
代码大概如附件,应该用不到 1 秒。
组合生成用多重循环挺蠢的,不过挺有效。
【 在 milksea 的大作中提到: 】
: 久了点,可能不仅基本的剪枝不足,循环里面运算也太繁琐了。你的代码就少一类剪枝,要同时排除过大和过小的部分和。
: 你的代码在我电脑上是11秒,我自己目前是不到一秒,我觉得还是慢。
--
修改:milksea FROM 114.249.226.*
FROM 114.249.226.*
附件(3.5KB)
egyptian.cpp
27楼
|
galaxy123
|
2024-02-25 23:32:39
|
只看此ID
通分
【 在 tiewuzi (santi) 的大作中提到: 】
: 是要严格等于1还是一定精度范围内?
: 严格相等的话光是验证就挺费事的
:
: 【 在 z16166 的大作中提到: 】
--
FROM 74.88.40.*
28楼
|
philbloo
|
2024-02-26 00:09:05
|
只看此ID
这种题目在脑子里想一想就行 写代码就着相了
【 在 webhost 的大作中提到: 】
: 有人能写出通用代码吗?即在自然数中选取M个不同的数,使其倒数和为N。M、N也均为自然数。
--
FROM 37.136.230.*
29楼
|
newre
|
2024-02-26 09:01:21
|
只看此ID
多谢高手!
【 在 milksea 的大作中提到: 】
: 代码大概如附件,应该用不到 1 秒。
: 组合生成用多重循环挺蠢的,不过挺有效。
:
--
FROM 222.128.104.*
首页
|
上页
|
下页
|
尾页
|
3/4
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版