编写一个接受3个数字的函数并计算3个数字的平均值,并将平均值提高到第二个幂(返回平均值)。
写一个循环,找到3个随机统一数字(0到1);将3个数字发送给函数,在函数值大于0.5625时停止循环
我试图找出这两件事,但我有点困惑。
import random
a = random.random ()
b = random.random ()
c = random.random ()
def avenum(x1,x2,x3): # the average of the 3 numbers
z = (x1+x2+x3)/3.0
return z
y = avenum(a,b,c)
print 'the average of the 3 numbers = ',y
def avesec(x1,x2,x3): # the average of the second power
d = ((x1**2)+(x2**2)+(x3**2))/3.0
return d
y1 = avesec(a,b,c)
print 'the average of the second power = ',y1
答案 0 :(得分:2)
第一个问题:
编写一个接受3个数字的函数并计算3个数字的平均值,并将平均值提高到第二个幂(返回平均值)。
def square_of_average(x1, x2, x3):
z = (x1 + x2 + x3) / 3
return z ** 2 # This returns the square of the average
你的第二个问题:
写一个循环,找到3个随机统一数字(0到1);将3个数字发送到函数,并在函数值大于0.5625 时停止循环。
假设你想在另一个函数中写这个:
import random
def three_random_square_average():
z = 0 # initialize your answer
while(z <= 0.5625): # While the answer is less or equal than 0.5625...
# Generate three random numbers:
a, b, c = random.random(), random.random(), random.random()
# Assign the square of the average to your answer variable
z = square_of_average(a, b, c)
# When the loop exits, return the answer
return z
另一种选择:
import random
def three_random_squared_average():
while(True):
a, b, c = random.random(), random.random(), random.random()
z = square_of_average(a, b, c)
if(z > 0.5625):
break
return z
如果您不想要一个功能:
import random
z = 0
while(z < 0.5625):
z = square_of_average(random.random(), random.random(), random.random())
print z
答案 1 :(得分:1)
首先是1) - 你将平均值提高到第二个幂...而不是每个值。否则,您需要输入值的第二个幂的平均值。
import random
a = random.random ()
b = random.random ()
c = random.random ()
def avenum1(x1,x2,x3): # the average of the 3 numbers
z = ((x1+x2+x3)/3.0)**2
return z
对于2):有更好的方法,但这是最明显的。
def avenum1(x1,x2,x3): # the average of the 3 numbers
z = ((x1+x2+x3)/3.0)**2
return z
avg = 0:
while avg<0.5625:
a = random.random ()
b = random.random ()
c = random.random ()
avg = avenum1(a,b,c)
更好的方法:
avg = 0
while avg<0.5625:
list_ = [random.random() for i in range(3)]
avg = (sum(list_)/3.0)**2