---
description: >-
  Python | 数学 | 离散 | Numpy | scipy | 形式逻辑 | 线性代数 | 图 | 树 | 最短路径 | scikit-learn |
  主成分分析 PCA | 网络搜索算法
---

# Python解离散数学

### 离散数学

离散数学是对可数的、不同的或独立的数学结构的研究。 一个很好的例子是像素。 从手机到电脑显示器再到电视机，现代屏幕由数百万个称为像素的小点组成，这些点排列成网格。 每个像素根据设备的命令以指定的颜色亮起，但每个像素只能显示有限数量的颜色。

数以百万计的彩色圆点组合在一起形成错综复杂的图案，给我们的眼睛带来平滑曲线的形状印象，如以下圆圈的边界：

但是，如果您放大并足够仔细地观察，就会发现真正的“曲线”是不同颜色像素区域之间的锯齿状边界，可能带有一些中间颜色，如下图所示：

相比之下，许多可能更熟悉的数学领域，例如初等代数或微积分，都侧重于连续统。 这些是在连续范围内取值的数学对象，例如介于 0 和 1 之间的一组数字 x，或绘制为平滑曲线的数学函数。 这些对象带有它们自己的数学方法类，但与我们将关注的离散问题的方法大多不同。

在数学中，集合论是对对象集合的研究，是研究离散数学的必备知识。

### 形式逻辑和构造数学证明

形式逻辑和真值表证明，直接的数学证明，反证法，数学归纳法证明

### 基数计算

以 n 为底的数，基数之间的转换，二进制数及其应用，布尔代数，十六进制数及其应用

### Scipy 数学库

### 离散概率的元素

离散概率的基础，条件概率和贝叶斯定理，贝叶斯垃圾邮件过滤，随机变量、均值和方差，谷歌 PageRank I

### 线性代数计算算法

理解线性方程组，线性系统的矩阵和矩阵表示，用高斯消元法求解小型线性系统，使用 NumPy 求解大型线性系统

### 算法需求计算

算法的计算复杂度，具有基本控制结构的算法的复杂性，常见搜索算法的复杂性，常见搜索算法的复杂性

```python
#Type of algorithm - inserting new element to pre-existing list
fruit_name = ["Jackfruit", "Honeydew", "Grapes"]
user_input1 = input("Please enter a fruit name: ")
fruit_name.append(user_input1)
print('The updated list is: ' + str(fruit_name))
#Type of algorithm - deleting element from list
user_input2 = input("Please enter the name of the fruit you
want to delete: ")
fruit_name.remove(user_input2)
print('The updated list is: ' + str(fruit_name))
```

```python
Please enter a fruit name: Apple
The updated list is: ['Jackfruit', 'Honeydew', 'Grapes',
'Apple']
Please enter the name of the fruit you want to delete: Apple
The updated list is: ['Jackfruit', 'Honeydew', 'Grapes']
Process finished with exit code 0
```

显示算法运行所用的时间：

```python
# a is a list containing some numbers
#We will compare the number input by user with the numbers in
 # this list
import timeit
tic=timeit.default_timer()
a=[1,2,3,4,5,6,7,8]
INPUT = input("Please input a number of your choice: ")
number = int(INPUT)
for i in range(len(a)):
 if a[i]== number:
 print("Yes", end=' ')
 else:
 print("No", end=' ')
print()
toc=timeit.default_timer()
time_elapsed = toc - tic
print("The time elapsed for this computation is: " + str(time_
 elapsed) + "seconds")
```

```python
Please input a number of your choice: 1
Yes No No No No No No No
The time elapsed for this computation is: 2.3035541 seconds
Process finished with exit code 0
```

### 图、树和网络的存储和特征提取

### 搜索数据结构和查找最短路径

### 使用 NumPy 和 Scikit-Learn 进行回归分析

### 使用 PageRank 进行 Web 搜索

### 使用 Scikit-Learn 进行主成分分析

### 源代码

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
