使用python已知平均数求随机数,,问题描述:产生40个


问题描述:产生40个数,范围是363-429之间,平均值为402

思路:

1 产生一个随机数

2 使用平均数求和随机数求出第二个数,生成20组

3 将排序打乱

# -*- coding: cp936 -*-import randomimport string###################产生随机整数######################################第一个数随机产生,第二个使用平均数求出####################count 数字的个数#average 平均数#begin 起始区间#end 结束区间def int_random (count, average, begin, end):    #print "wzh_random"    numarr = [0 for x in range(2)];    i = 0;    while (1):       num_first = random.randrange(begin, end);       #第二个数      num_second = average * 2 - num_first;      if (num_second >= begin and num_second <= end):          numarr[i] = num_first;          i = i + 1;          numarr[i] = num_second;          break    return numarr;###################产生随机数######################################第一个数随机产生,第二个使用平均数求出####################count 数字的个数#average 平均数#begin 起始区间#end 结束区间def float_random (count, average, begin, end):    #print "wzh_random"    numarr = [0 for x in range(2)];    i = 0;    while (1):       num = random.uniform(begin, end);      #取两位小数      num_first = round(num, 2);      #第二个数      num_second = average * 2 - num_first;      if (num_second >= begin and num_second <= end):          numarr[i] = num_first;          i = i + 1;          numarr[i] = num_second;          break    return numarr;###################写文件###################def write_file (filename, content):    fo = open (filename, "ab");    fo.write(content);    fo.close();def show_list (list):    for i in list:        print i,    print;###################主函数调用产生整形随机数####################40个数字,平均数400,363 - 429 之间def test_random_int():    count = 40;    average = 402;    begin = 363;    end = 429;    numarr_count = 0;    numarr = [0 for x in range(count)];    for i in range (count / 2):        list = int_random (40, 402, 363, 429)        j = 0;        for j in range (len(list)):             numarr[numarr_count] = list[j];             numarr_count += 1;    content = ‘‘;    #打乱排序    print "数据未打乱:";    show_list (numarr)    random.shuffle(numarr);    print "数据打乱:";    show_list (numarr)    for i in numarr:        content = content + ‘ ‘ + str(i);    #print content;    #追加写入文件    filename = "test.txt";    print "文件名称:",filename;    write_file (filename, content)    write_file (filename, "\n");###################主函数调用产生实型随机数####################40个数字,平均数400,363 - 429 之间def test_random_float():    count = 40;    average = 402;    begin = 363;    end = 429;    numarr_count = 0;    numarr = [0 for x in range(count)];    for i in range (count / 2):        list = float_random (40, 402, 363, 429)        j = 0;        for j in range (len(list)):             numarr[numarr_count] = list[j];             numarr_count += 1;    content = ‘‘;    #打乱排序    print "数据未打乱:";    show_list (numarr)    random.shuffle(numarr);    print "数据打乱:";    show_list (numarr)    for i in numarr:        content = content + ‘ ‘ + str(i);    #print content;    #追加写入文件    filename = "test.txt";    print "文件名称:",filename;    write_file (filename, content)    write_file (filename, "\n");#调用测试产生整形随机数test_random_int();#调用测试产生实型随机数test_random_float();

使用python已知平均数求随机数

评论关闭