MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Number of Differing Digits & Another Problem (want to see different

  • To: mathgroup at smc.vnet.net
  • Subject: [mg76334] Re: Number of Differing Digits & Another Problem (want to see different
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Sun, 20 May 2007 02:20:35 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <f2mf5b$mbm$1@smc.vnet.net>

VenDiddy at gmail.com wrote:
> I just purchased a copy of Mathematica and I've been learning it for
> about a week now. You can expect that I will be posting a lot of
> questions. One thing I've noticed is that there are so many different
> ways to do the same thing!
> 
> Here is a function I came up with that calculates how many binary
> digits two numbers differ in:
> 
> BitDifferences[a_, b_, n_] :=
>  Count[Equal @@@
>    Thread[{IntegerDigits[a, 2, n], IntegerDigits[b, 2, n]}], True]
---------------------------------------------------------------^^^^
Here, I believe you want to count the occurrences of False rather than True.

> 
> For example 5 = 101 differs from 6 = 111 by one digit (the middle
> digit).

The number 6 (decimal) is 110 in binary.

(BaseForm[#1, 2] & ) /@ {5, 6}
==> {101, 110}

> I want to see how you would do it so I can broaden my Mathematica
> perspective.
> 
> Thanks.

One possible way is the following:

In[1]:=
BitDifferences2[a_, b_] :=
   Module[{n},
    n = Max[Length /@
        (IntegerDigits[#1, 2] & ) /@
         {a, b}]; Total[
      (Boole[#1[[1]] !=
          #1[[2]]] & ) /@
       Transpose[(IntegerDigits[#1,
           2, n] & ) /@ {a, b}]]]

BitDifferences2[5, 6]
BitDifferences2[5, 256]

Out[2]=
2

Out[3]=
3

Regards,
Jean-Marc


  • Prev by Date: [Mathematica 6] Sudden shutdown of Mathematica. No error messages, no traces, no warning. Mathematica just disappears from desktop
  • Next by Date: Re: v.6 Editing Stylesheets
  • Previous by thread: Re: Sudden shutdown of Mathematica. No error messages, no traces, no warning. Mathematica just disappears from desktop
  • Next by thread: Re: Number of Differing Digits & Another Problem (want to see different