gpt4 book ai didi

python - 另一种平方数的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:39:24 27 4
gpt4 key购买 nike

几年前我想出了这个技巧。它似乎工作正常。

输入:一个数字

输出:它的正方形

x=int(input("Enter the number whose square you wish to find out: "))  #decimal input invalid
last_digit=x%10
#We will use formula Sn= (n/2)*(2a+ (n-1)d) of AP
a=100 + last_digit*20 #100,20 are fixed values
d=200 #200 is a fixed value
n=(x-last_digit)/10

final_answer=(n/2)*(2*a + (n-1)*d) + last_digit**2 #These calculations are easier than x*x for a vvlarge x
#normal multiplication is d*d digits, but this is d*(d-1) or d*(d-2) digits

print("My answer: " ,format(final_answer,'f'))
print("Actual answer: ", x**2)

我已经写了评论来表明我在每一步做了什么

-> 这是如何工作的?喜欢认真吗?我通过观察一些模式并概括它们得到了这个-> 此代码仅适用于 3 位数字,但适用于所有数字。怎么办?

通过扩展/替换,我的“推导”如下:-

注意:L=last_digit

n = (x-L)/10 #和n=x//10一样

a = 100 + 20L

d = 200

我们的最终答案是:-

=> (n/2) * (2a + (n-1)d ) + L^2

为变量代入值,

=> [(x-L)/20] * [200 + 40L + [(x-L)/10]*200 - 200] + L^2

将[(x-L)/20]中的20取到*号的RHS,

=> (x-L) * [10 + 2L + x - L -10] + L^2

=> (x-L)*(x+L) + L^2

=> x^2 - L^2 + L^2

=> x^2

最佳答案

您的代码没有给出 10 到 19 的正确输出,它只在 x//10 是 2 的倍数时给出正确的输出,因为这个表达式 (n/2)*(2*a + (n-1)*d) + last_digit**2n/2。对于其余的测试用例,它给出了大概的答案。并展开条款,您最终会得到 x^2((2*last_digit/x) + 1),现在很明显为什么这些魔数(Magic Number)给出了正确的输出。

关于python - 另一种平方数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53380537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com