summaryrefslogtreecommitdiff
path: root/src/utils/ByteUtils.scala
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2014-11-26 18:10:58 -0800
committeriximeow <me@iximeow.net>2014-11-26 18:11:50 -0800
commit91b4cfc801b7c156c231ca60aba69a8d171e9226 (patch)
tree189262a5e86aea229374e9786edb08ff90d16d09 /src/utils/ByteUtils.scala
parent31cac438b1571ba6ced29af4997cf9f1f5c3c6b7 (diff)
Challenge 8, 9
Diffstat (limited to 'src/utils/ByteUtils.scala')
-rw-r--r--src/utils/ByteUtils.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/utils/ByteUtils.scala b/src/utils/ByteUtils.scala
index 18942c0..723164d 100644
--- a/src/utils/ByteUtils.scala
+++ b/src/utils/ByteUtils.scala
@@ -108,4 +108,7 @@ object ByteUtils {
def hammingDistance[T : BitOps : SizedNumeric](a: Seq[T], b: Seq[T]): Int =
(a xor b).map(_.bitsSet).reduce(_ @+ _)
+
+ def avgHammingDistance[T : BitOps : SizedNumeric](xs: Seq[Seq[T]]): Double =
+ xs.sliding(2).map({ case Stream(a: Seq[T], b: Seq[T]) => hammingDistance(a, b) }).reduce(_ @+ _) / xs.length.toDouble
}