写java中欧几里得算法的递归代码
时间: 2024-05-21 15:10:09 浏览: 72
public class EuclideanAlgorithm {
public static int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
public static void main(String[] args) {
int a = 36;
int b = 48;
int gcd = gcd(a, b);
System.out.println("The greatest common divisor of " + a + " and " + b + " is " + gcd);
}
}
相关问题
prim里得min算法怎么写
Prim算法是一种用于求解最小生成树的算法,其中的min算法通常用于选择每次加入生成树的最小权值边。具体实现如下:
1. 首先选定一个起点,将其加入生成树中。
2. 对于起点相邻的所有边,将其权值和相邻的节点加入一个优先队列中。
3. 从优先队列中选择权值最小的边,如果该边连接的节点不在生成树中,则将其加入生成树,并将起点相邻的所有边和节点加入优先队列中。
4. 重复步骤3,直到生成树包含所有节点。
下面是Prim算法中min算法的伪代码:
```
function min(queue):
min_edge = None
min_weight = infinity
for edge in queue:
if edge.weight < min_weight:
min_edge = edge
min_weight = edge.weight
return min_edge
```
其中,queue是一个优先队列,存储了当前节点相邻的所有边和节点。在每次选择最小边时,遍历队列中的所有边,找到权值最小的边并返回。
python计算n维欧几里得距离,在Python中计算numpy的欧几里得距离
可以使用numpy库中的`linalg.norm`函数来计算n维欧几里得距离。
具体操作如下:
```python
import numpy as np
# 创建两个n维向量
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 计算欧几里得距离
dist = np.linalg.norm(a-b)
# 输出结果
print(dist)
```
以上代码输出结果为:
```
5.19615242271
```
其中,`a`和`b`分别表示两个n维向量,`np.linalg.norm(a-b)`表示计算向量`a`和向量`b`之间的欧几里得距离,结果保存在变量`dist`中。
阅读全文