|
楼主 |
发表于 2023-7-6 21:56:49
|
显示全部楼层
广东省东莞市
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.子程序 CalculateNormalizedDistance, 双精度小数型, 公开
.参数 aa, 双精度小数型, 数组
.参数 bb, 双精度小数型, 数组
.局部变量 diff_sum, 双精度小数型
.局部变量 mean_diff_sum, 双精度小数型
.局部变量 sq_diff_sum, 双精度小数型
.局部变量 euclidean_distance, 双精度小数型
.局部变量 max_value, 双精度小数型
.局部变量 normalized_distance, 双精度小数型
.局部变量 i, 整数型
.局部变量 size, 整数型
.局部变量 mean_diff, 双精度小数型
.局部变量 std_diff, 双精度小数型
.局部变量 aa_normalized, 双精度小数型, , "0"
.局部变量 bb_normalized, 双精度小数型, , "0"
.变量循环首 (1, 取数组下标 (aa, ), 1, i)
diff_sum = diff_sum + aa [i] - bb [i]
mean_diff_sum = mean_diff_sum + (aa [i] + bb [i]) ÷ 2
sq_diff_sum = sq_diff_sum + 求次方 (aa [i] - bb [i], 2)
.变量循环尾 ()
size = 取数组下标 (aa, )
mean_diff = mean_diff_sum ÷ size
std_diff = 求平方根 (sq_diff_sum ÷ size)
' ReDim aa_normalized(LBound(aa) To UBound(aa))
' ReDim bb_normalized(LBound(bb) To UBound(bb))
复制数组 (aa_normalized, aa)
复制数组 (bb_normalized, bb)
.变量循环首 (1, 取数组下标 (aa, ), 1, i)
aa_normalized [i] = (aa [i] - mean_diff) ÷ std_diff
bb_normalized [i] = (bb [i] - mean_diff) ÷ std_diff
euclidean_distance = euclidean_distance + 求次方 (aa_normalized [i] - bb_normalized [i], 2)
.变量循环尾 ()
euclidean_distance = 求平方根 (euclidean_distance)
max_value = 求平方根 (size)
normalized_distance = (1 - euclidean_distance ÷ max_value) × 100
返回 (normalized_distance)
.子程序 Main, 双精度小数型, 公开
.局部变量 aa, 双精度小数型, , "0"
.局部变量 bb, 双精度小数型, , "0"
aa = { 46, 1369753, 51, 3736, 33, 1, 1, 1, 6, 1, 2, 7, 14 }
bb = { 123, 321029, 156, 0, 3074450, 100, 4430, 34, 1, 1, 4, 14, 1, 1, 6, 3 }
返回 (CalculateNormalizedDistance (aa, bb))
.子程序 _按钮1_被单击
输出调试文本 (Main ()) ' 原结果值为:34.3653759331934
|
|