可以编程如下:
b = -100
for i in range(200):
b = b + 1
a = -100
for i in range(200):
a = a + 1
if a * a - b * b == 89:
print('(a,b)'+'='+'('+str(a)+','+str(b)+')')
print('OVER')
结果显示为:
(a,b)=(-45,-44)
(a,b)=(45,-44)
(a,b)=(-45,44)
(a,b)=(45,44)
OVER
这个题目稍难些,数学方法可以这样做:
可以看出a+b=48,且a-b=16,故a=32,b=16。这种做法比较巧妙,不过不能深想,因为有些细节不好解释清楚,可以用无理数与有理数的关系,也可以用到一点儿比较高深的知识,比如线性代数里面的线性组合。
现在我们换个思路,用编程的思想来解决这个问题(这也是科技发展的必然趋势):
m = 0
n = 0
number1 = m + n
number2 = m - n
import math
for i in range(100):
n = n + 1
m = n
for i in range(100):
m = m + 1
number1 = m + n
number2 = m - n
if math.sqrt(m+n) + math.sqrt(number2) == 4 * math.sqrt(3)+4:
print('m='+str(m))
print('n='+str(n))
结果如下:
m=32
n=16
这个题目跟问题2有些近似,编程如下:
import math
x = 0
y = 0
for i in range(100):
x = x + 1
y = x
for i in range(100):
y = y + 1
if abs(math.sqrt(x) + math.sqrt(y) - math.sqrt(72)) < 1.0e-14:
print('('+str(x)+','+str(y)+')')
print('OVER')
结果显示为:
(2,50)
(8,32)
OVER
喜欢的话请关注微信公众号:迷你恐龙的博客,公众号中有更多好玩的文章呦!