枚举算法经典例题python可图形化
时间: 2025-01-03 16:29:48 浏览: 7
### Python 实现枚举算法并图形化展示
#### 枚举算法简介
枚举算法是一种通过穷尽所有可能情况来解决问题的方法。这种方法虽然效率不高,但在某些情况下非常适合解决特定问题。对于一些规模较小的问题集,枚举法能有效地找到解。
#### 经典型题目——素数判定与可视化
下面将以素数判别为例,介绍如何利用Python实现枚举算法,并借助`matplotlib`库进行结果的图形化展示[^1]。
```python
import matplotlib.pyplot as plt
def is_prime(num):
""" 判断num是否为质数 """
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
def plot_primes(limit):
""" 找到limit范围内的所有质数并将它们绘制出来"""
primes = []
non_primes = []
# 使用枚举方法找出所有的质数
for number in range(2, limit + 1):
if is_prime(number):
primes.append((number, 'Prime'))
else:
non_primes.append((number, 'Non-prime'))
labels, counts = zip(*[(label, count) for label, count in (primes + non_primes)])
colors = ['blue' if lbl == 'Prime' else 'red' for _, lbl in (primes + non_primes)]
fig, ax = plt.subplots()
bars = ax.bar(labels, counts, color=colors)
# 添加标签和其他装饰元素
ax.set_xlabel('Numbers')
ax.set_ylabel('Count')
ax.set_title(f'Primes and Non-primes up to {limit}')
ax.legend(bars[:2], ('Prime', 'Non-prime'), loc='best')
plt.show()
plot_primes(50)
```
这段代码定义了一个函数`is_prime()`用于检测给定数值是不是素数;而`plot_primes()`则是用来计算指定范围内所有自然数中的素数,并调用Matplotlib创建条形图显示这些数字及其分类(即素数或非素数),其中蓝色代表素数,红色表示不是素数的其他整数。
阅读全文