来个大佬帮帮我吧,题目实在不会写没思路,不要用函数
python吧
全部回复
仅看楼主
level 4
百灵飞鲨
楼主
已知A<B,且A,B为正整数, 求满足个条件A×B=716699且A+B最小的A值。答案是563
A,B,C三个正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数。求130<A+B+C<150的倒勾股数有多少组。
答案是1
51.倒勾股数是满足公式: 1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,求A,B,C小于或等于100的倒勾股数有多少组?.
答案是5
这些编程怎么写啊我不会啊
2023年08月15日 01点08分
1
level 9
正在缓冲QAQ0
第一题 遍历即可 从A B=0开始 一点点加 直到满足条件
2023年08月15日 02点08分
2
百灵飞鲨
大佬这个我试过一点一点遍历我手机运行不过来啊
2023年08月15日 03点08分
正在缓冲QAQ0
@百灵飞鲨
用电脑啊 手机哪能行
2023年08月15日 05点08分
level 9
正在缓冲QAQ0
第二题也遍历 就行
2023年08月15日 02点08分
3
level 9
正在缓冲QAQ0
第三题也遍历
2023年08月15日 02点08分
4
吧务
level 12
一周休七日
穷举
2023年08月15日 02点08分
5
level 12
Dragon1573
这3题都不难,注意浮点数计算不精确,对于 n >= 2 必定有 0 < 1/(n^2) < 1 ,要用 fractions.Fraction 分数库确保计算准确。
上面把题目答案以函数返回值的形式给出,方便 Pytest 测试,你自己改一下即可。
2023年08月15日 02点08分
6
百灵飞鲨
我们没学到分数库
2023年08月15日 03点08分
Dragon1573
@百灵飞鲨
那就自己通分咯。等式左边的分式加法做通分,然后按照分式相等交叉相乘的规律变成判断两个整数乘法是否相等,这样可以避免使用 fractions.Fraction 类。
2023年08月15日 06点08分
level 3
5885999
楼上正解
2023年08月15日 03点08分
7
level 7
无言1984
第一题很简单时间复杂度n可以完成,图一,第二题第三题就是经典的三数之和,可以降到n**2,需要注意的是题目求的是组数,顺序不同内容相同的a,b,c值的组合实际是一个结果,上面的回答没考虑这一点直接遍历了,会把45 60 36,和60 45 36当成两个结果。
2023年08月15日 03点08分
8
百灵飞鲨
大佬你写的代码有些方法和有些函数我们没学到,能不能只用循环 分支 序列解决
2023年08月15日 03点08分
无言1984
@百灵飞鲨
把代码的分数改成1/a**2就行了,结果一样
2023年08月15日 03点08分
Dragon1573
对哦,不需要遍历 c 判断三者是否满足等式,可以默认等式成立反向求 c 再判断结果是否为整数,这个方法确实好。
2023年08月15日 06点08分
level 13
贴吧用户_0tD3JJt
没要求时间的话穷举吧
2023年08月15日 03点08分
9
百灵飞鲨
太慢了我手机运行不过来
2023年08月15日 03点08分
level 12
攒银子的但丁
为了楼上提到的避免浮点数计算精度问题,你试下这样列公式(a^2+b^2)*c^2=a^2*b^2
2023年08月15日 04点08分
10
level 12
攒银子的但丁
自学时长两月半的编程练习生前来凑热闹,说下思路,求倒勾股就用三层遍历循环,分别用三个临时变量a,b,c,每层都遍历range(2,100),最内层加入条件判断语句if 我楼上的公式 and (a>b and b>c):
把他们组成列表或元组加入到一个事先准备的空集合内,遍历结束后用len查看集合长度即可得出有多少组满足条件
2023年08月15日 05点08分
11
level 12
wtx621
第一题
2023年08月15日 06点08分
12
level 5
117744
只有循环和条件
2023年08月16日 17点08分
13
117744
第二题
2023年08月16日 17点08分
117744
Q/2,是因为a和b有重复
2023年08月16日 17点08分
117744
准大一,自学Python,咱也没认全函数名
2023年08月16日 17点08分
level 5
117744
第一题,只有while循环和条件
2023年08月16日 17点08分
14
level 1
言无绪
不上不等式的话,第一题这样好像可以,其实我一开始想用b/2来不断折半b不过应该差不多
2023年08月16日 20点08分
15
百灵飞鲨
能不能加点注释解释一下呢
2023年08月18日 22点08分
言无绪
@百灵飞鲨
1.对于任意正整数z有数对a,b使得z=a*b,若从在正整数范围内从a=1进行遍历,当a,b大小关系变化时(a小于b变为,a大于b)数对开始重复 2.又由题目有a=716699/b,则令f(b)=a+b=716699/b+b,求导f'(b)<0正整数范围内恒成立,单调递减即数对开始发生大小个性变化时存在最小值
2023年08月19日 05点08分
言无绪
@言无绪
第二点的f'(b)<0的恒成立范围应该是(1,√716699),感觉多多少少还是有点逻辑漏洞,还要证明一些条件
2023年08月19日 05点08分
1
2
尾页