From 4af1ff746740ef70e03d6edae272d1fcdffba35a Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Sat, 5 Sep 2020 10:41:28 -0400 Subject: lib: add KeySizeWithMinDistanceIter * lib/hamming.go (KeySizeWithMinDistanceIter): New function. --- lib/hamming.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib/hamming.go') diff --git a/lib/hamming.go b/lib/hamming.go index 05a7546..3ed4611 100644 --- a/lib/hamming.go +++ b/lib/hamming.go @@ -32,6 +32,20 @@ func setBits(b byte) int { return int(c) } +// Returns average key size with minimum normalized hamming distance. +// 'keyMin' is the minimum key size +// 'keyMax' is the maximum key size +// 'iterate' is the number of times to iterate. +func KeySizeWithMinDistanceIter(keyMin, keyMax, iterate int) int { + sum := 0 + avg := 0.0 + for i := 0; i < iterate; i++ { + sum += KeySizeWithMinDistance(keyMin, keyMax) + } + avg = float64(sum) / float64(iterate) + + return int(avg) +} // Returns key size with minimum normalized hamming distance // 'keyMin' is the minimum key size -- cgit v1.2.3