資料集:
0 00 1
4 44 5
5 45 5
1 0# 用最大最小距離法進行聚類分析
from fileutil import fileutil
from mathutil import mathutil
import math
x = fileutil.openfile('2-1.txt') # 資料
z = # 聚類中心
theta = 0.7
# 1.選個中心
x.remove(x[0])
# 2.選個離第乙個中心最遠的點做第二個聚類中心
index = 1
p = 0
for i in range(x.__len__()):
a = mathutil.ed(z[0], x[i])
if p < a:
p = a
index = i
x.remove(x[index])
# 3.計算剩餘各特徵向量到z_1,z_2的距離並求出最小值
d =
for i in range(x.__len__()):
a =
for j in range(z.__len__()):
# 4.看是否有其餘中心點
l = mathutil.ed(z[0], z[1])
f = 1
while f:
d =
for i in range(x.__len__()):
a =
for j in range(z.__len__()):
a = max(d)
if a > theta * l:
x.remove(x[i])
else:f = 0
#5.將剩餘點按最小距離原則分配
ans = #結果集
for i in range(z.__len__()):
for i in range(x.__len__()):
l = float('inf')
idx = 0
for j in range(z.__len__()):
b = mathutil.ed(z[j],x[i])
if b結果
第1類:
[[0, 0], [0, 1], [1, 0]]
第2類:
[[5, 5], [4, 4], [4, 5], [5, 4]]
2654 最小距離最大
題目描述 給出n個位置 數軸上的座標值 從中選出k個,讓這k個位置相鄰兩個之間的距離 相鄰位置座標的差值 盡可能的大 盡可能大的意思是這k 1個距離的最小值盡量大 輸出這個最大的最小值。樣例解釋 選位置 1 5 9。輸入 第一行 2個數n和k 2 n 100000,2 k 10000,k n 後面n...
2654 最小距離最大
問題 給出n個位置 數軸上的座標值 從中選出k個,讓這k個位置相鄰兩個之間的距離 相鄰位置座標的差值 盡可能的大 盡可能大的意思是這k 1個距離的最小值盡量大 輸出這個最大的最小值。樣例解釋 選位置 1 5 9。輸入 第一行 2個數n和k 2 n 100000,2 k 10000,k n 後面n行 ...
最大最小表示法
時間複雜度 o n 應用 比較兩個環形串是否是同一字串 判重 判同分異構等 判同分異構 都化為最小或最大 看有幾個不一樣的就好了。放到set裡。最小表示法是我在看插頭dp的時候看到的乙個名詞,就先來看了一下這個演算法,還是蠻簡單的,有乙個首位相連的字串,我們要尋找乙個位置,從這個位置向後形成乙個新字...