练习1:求n个随机整数均值的平方根,整数范围在m与k之间。


In [5]:
# 此程序意在求n个随机整数均值的平方根,整数范围由用户确定
# m为整数范围下界,k为整数范围上界

import random,math

def average():
    n = int(input('请输入你想求值的整数个数,回车键结束:'))
    m = int(input('请输入随机整数范围的下界,回车键结束:'))
    k = int(input('请输入随机整数范围的上界,回车键结束:'))
    i = 0
    total = 0
    
    while i < n:
        number = random.randint(m,k)
        i += 1
        total += number
        print('随机整数为:',number)
    
    print()
    print('随机整数之和为:',total)
    
    aver = total/n
    print('随机整数均值为:',aver)
    
    square = math.sqrt(aver)
    print('随机整数均值的平方根为:',square)
    
average()


请输入你想求值的整数个数,回车键结束:3
请输入随机整数范围的下界,回车键结束:3
请输入随机整数范围的上界,回车键结束:36
随机整数为: 8
随机整数为: 11
随机整数为: 13

随机整数之和为: 32
随机整数均值为: 10.666666666666666
随机整数均值的平方根为: 3.265986323710904

练习2:求n个随机整数,整数范围在m与k之间,求西格玛log(随机整数)及西格玛1/log(随机整数)


In [4]:
# 此程序旨在求由用户指定个数及整数范围的随机整数的对数之和,以及对数的倒数之和
# 此程序中的n为整数个数,m为整数范围下界,k为整数范围上界


import random,math

def my_sum():
    n = int(input('请输入你想求值的整数个数,回车键结束:'))
    m = int(input('请输入随机整数范围的下界,回车键结束:'))
    k = int(input('请输入随机整数范围的上界,回车键结束:'))
    i = 0
    log = 0
    anti_log = 0
    total = 0
    anti_total = 0 
    
    while i < n:
        number = random.randint(m,k)
        i += 1
        log = math.log(number)
        anti_log = 1/math.log(number)
        total += log
        anti_total += anti_log
        
        print('随即整数为:',number)
        print('随机整数的对数为:',log)
        print('随机整数的对数的倒数为:',anti_log)
        print()
        
    print('随机整数的对数之和为:',total)
    print('随机整数的对数的倒数之和为',anti_total)

my_sum()


请输入你想求值的整数个数,回车键结束:4
请输入随机整数范围的下界,回车键结束:45
请输入随机整数范围的上界,回车键结束:1318
随即整数为: 1199
随机整数的对数为: 7.089243155027514
随机整数的对数的倒数为: 0.1410587813299682

随即整数为: 1230
随机整数的对数为: 7.114769448366463
随机整数的对数的倒数为: 0.14055269215077631

随即整数为: 831
随机整数的对数为: 6.7226297948554485
随机整数的对数的倒数为: 0.14875131169133526

随即整数为: 1072
随机整数的对数为: 6.977281341630747
随机整数的对数的倒数为: 0.14332229861986295

随机整数的对数之和为: 27.903923739880174
随机整数的对数的倒数之和为 0.5736850837919427

挑战性练习:将猜数游戏改成由用户随便选择一个整数,让计算机来猜测的猜数游戏


In [7]:
import random , math

def computer_guess():
    n = random.randint(1, 999)    #n作为计算机限定的所猜测的神秘整数的上界
    print('n=',n,sep='')
    number = int(input('请输入一个大于0小于n的整数,作为你选定的整数,回车键结束:'))
    max_times = math.ceil(math.log2(n))
    guess_times = 0
    
    while guess_times <= max_times:
        guess = random.randint(1,n)
        print(guess)
        guess_times += 1
        print('一共可以猜', max_times, '次',sep='')
        print('计算机已经猜了', guess_times, '次',sep='')
        
        if guess == number:
            print('你选定的数字是:', guess)
            print('计算机比标准次数少', max_times-guess_times, '次')
            break
        elif guess > number:
            print('计算机猜大了')
        else:
            print('计算机猜小了')
            
    else:
        print('选定数字是:',number)
        
computer_guess()


n=690
请输入一个大于0小于n的整数,作为你选定的整数,回车键结束:205
307
一共可以猜10次
计算机已经猜了1次
计算机猜大了
396
一共可以猜10次
计算机已经猜了2次
计算机猜大了
415
一共可以猜10次
计算机已经猜了3次
计算机猜大了
379
一共可以猜10次
计算机已经猜了4次
计算机猜大了
233
一共可以猜10次
计算机已经猜了5次
计算机猜大了
237
一共可以猜10次
计算机已经猜了6次
计算机猜大了
592
一共可以猜10次
计算机已经猜了7次
计算机猜大了
579
一共可以猜10次
计算机已经猜了8次
计算机猜大了
190
一共可以猜10次
计算机已经猜了9次
计算机猜小了
25
一共可以猜10次
计算机已经猜了10次
计算机猜小了
379
一共可以猜10次
计算机已经猜了11次
计算机猜大了
选定数字是: 205