如何用握手定理算结点个数
时间: 2024-03-04 17:50:20 浏览: 96
握手定理是指在一个图中,所有节点的度数之和等于边数的两倍。根据这个定理,我们可以通过已知的边数和度数来计算节点个数。具体的计算公式为:节点个数 = 边数 / 2 + 2 - 度数之和。
举个例子,如果一个图有12条边,每个节点的度数分别为2、3、4、5,那么节点个数可以通过握手定理来计算。首先计算度数之和:2 + 3 + 4 + 5 = 14。然后带入公式:节点个数 = 12 / 2 + 2 - 14 = 1。因此,这个图只有一个节点。
相关问题
设G为9阶无向图,每个结点度数不是5就是6,则G中至少有 ( ) 个5 度结点。
设G中有n个5度结点,则有9-n个6度结点。因为每个结点的度数只能是5或6,所以G中总共有 $5n+6(9-n)=54-n$ 条边。根据握手定理,G中边数应该是所有结点的度数之和的一半,即 $\frac{1}{2}\sum_{v\in G} d(v)$。由于每个结点的度数都不是5就是6,所以 $\sum_{v\in G} d(v)$ 必定是偶数。因此,$5n+6(9-n)=54-n$ 必须是偶数,解得 $n\geq 3$。因此,G中至少有3个5度结点。
给定图G各个结点的度数,求它包含的边的条数m。请用C语言实现
可以使用以下的C语言代码实现:
```c
#include <stdio.h>
int main() {
int n; // 结点数
scanf("%d", &n);
int degreeSum = 0; // 所有结点度数之和
for (int i = 0; i < n; i++) {
int degree;
scanf("%d", °ree);
degreeSum += degree;
}
int m = degreeSum / 2; // 边的条数
printf("边的条数为:%d\n", m);
return 0;
}
```
代码中,首先输入结点数n,然后循环读入每个结点的度数,并计算所有结点度数之和degreeSum。最后,根据握手定理计算边的条数m,并输出结果。
阅读全文