Python 中带有 break 命令的随机函数

Random function with break command in Python

  1. 编写一个函数,接受 3 个数字并计算这 3 个数字的平均值,并将平均值提高到二次方(returns 平均值的平方)。

  2. 写一个循环,找出3个随机均匀数(0到1);将 3 个数字发送到函数并 当函数的值大于 0.5625

  3. 时停止循环

我试图弄清楚这两件事,但我有点困惑。

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

首先是 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

第一题:

Write a function that accepts 3 numbers and calculates the average of the 3 numbers and raises the average to the second power (returns the average squared).

def square_of_average(x1, x2, x3):
    z = (x1 + x2 + x3) / 3
    return z ** 2 # This returns the square of the average

你的第二个问题:

Write a loop that finds 3 random uniform numbers (0 to 1); sends the 3 numbers to the function and stops the loop when the value of the function is greater than 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