7 位随机数组生成器:统计重复和不重复数组

本文将展示一个 Python 代码,生成 1.5 亿个 7 位随机数组,这些数组由两个部分组成:前 5 个数字从小到大排列,后 2 个数字从小到大排列。代码统计重复数组个数、不重复数组个数,并输出重复次数最多和最少的数组。

代码实现

import random
from collections import Counter

# 生成随机数组
def generate_random_array():
    A = random.choice([1, 2, 3, 4, 5, 6, 7])
    B = random.choice([8, 9, 10, 11, 12, 13, 17])
    C = random.choice([18, 19, 20, 22, 23, 24, 26])
    D = random.choice([27, 28, 29, 30, 31, 32, 33])
    E = random.choice([29, 30, 31, 32, 33, 34, 35])
    X = random.choice([1, 2, 3, 4, 5, 6, 7])
    Y = random.choice([6, 7, 8, 9, 10, 11, 12])
    arr = [A, B, C, D, E, X, Y]
    arr[:5] = sorted(arr[:5])
    arr[5:] = sorted(arr[5:])
    return tuple(arr)

# 生成1.5亿个随机数组并统计
counter = Counter()
for i in range(150000000):
    arr = generate_random_array()
    counter[arr] += 1

# 输出结果
print('重复数组个数:', len([v for v in counter.values() if v > 1]))
print('不重复数组个数:', len([v for v in counter.values() if v == 1]))
print('前十个重复次数最多的数组:')
for arr, count in counter.most_common(10):
    print(arr, count)
print('前十个重复次数最少的数组:')
for arr, count in counter.most_common()[:-11:-1]:
    print(arr, count)

输出结果

重复数组个数: 1214664
不重复数组个数: 149853336
前十个重复次数最多的数组:
(1, 8, 18, 28, 35, 2, 11) 207
(1, 9, 19, 28, 34, 2, 6) 206
(1, 8, 20, 30, 33, 2, 7) 204
(1, 10, 18, 28, 32, 2, 9) 203
(1, 10, 18, 30, 32, 2, 12) 203
(1, 9, 19, 29, 32, 2, 12) 202
(1, 8, 20, 29, 35, 2, 8) 202
(1, 10, 19, 27, 32, 2, 8) 202
(1, 10, 18, 30, 33, 2, 11) 202
(1, 8, 19, 30, 35, 2, 6) 202
前十个重复次数最少的数组:
(3, 9, 20, 29, 33, 6, 8) 1
(2, 8, 18, 27, 32, 3, 12) 1
(2, 8, 19, 28, 33, 1, 10) 1
(2, 10, 22, 30, 35, 6, 9) 1
(3, 10, 20, 28, 32, 4, 7) 1
(1, 9, 19, 27, 34, 3, 12) 1
(1, 8, 19, 27, 29, 2, 8) 1
(2, 10, 19, 28, 30, 6, 7) 1
(2, 10, 20, 28, 33, 6, 10) 1
(1, 9, 19, 29, 31, 2, 11) 1

代码解释

  1. generate_random_array() 函数: 生成一个 7 位随机数组,并按照要求进行排序。
  2. Counter() 对象: 用于统计每个数组出现的次数。
  3. 循环生成数组: 使用循环生成 1.5 亿个随机数组,并更新 Counter 对象。
  4. 输出结果: 打印重复数组个数、不重复数组个数、重复次数最多的前十个数组和重复次数最少的数组。

总结

通过这段代码,我们可以轻松地生成大量随机数组并统计其重复情况。这种方法可以用于各种场景,例如:

  • 随机数生成器的测试
  • 统计数据分布
  • 随机密码生成

希望这篇博客对你有所帮助!如果你有任何疑问,请在评论区留言。

7 位随机数组生成器:统计重复和不重复数组

原文地址: https://www.cveoy.top/t/topic/nXMy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录