From 91b4cfc801b7c156c231ca60aba69a8d171e9226 Mon Sep 17 00:00:00 2001 From: iximeow Date: Wed, 26 Nov 2014 18:10:58 -0800 Subject: Challenge 8, 9 --- src/utils/ByteUtils.scala | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/utils/ByteUtils.scala') 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 } -- cgit v1.1