MathGroup Archive 2007

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

Search the Archive

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

  • To: mathgroup at smc.vnet.net
  • Subject: [mg76340] Re: [mg76310] Number of Differing Digits & Another Problem (want to
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Sun, 20 May 2007 02:23:41 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

Since you intend to count the bit differences your function needs to be modified to

Clear[BitDifferences];
BitDifferences[a_,b_,n_]:=
    n-Count[Equal@@@
          Thread[{IntegerDigits[a,2,n],IntegerDigits[b,2,n]}],True];

t1=Table[BitDifferences[a,b,6],{a,-16,16},{b,-16,16}];

I would use

Clear[BitDifferences];
BitDifferences[a_,b_]:=Module[
      {n=Length[IntegerDigits[Max[Abs[{a,b}]],2]]},
      n-Count[IntegerDigits[a,2,n]-IntegerDigits[b,2,n],0]];

t2=Table[BitDifferences[a,b],{a,-16,16},{b,-16,16}];

t1==t2

True


Bob Hanlon

---- 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]
> 
> For example 5 = 101 differs from 6 = 111 by one digit (the middle
> digit).
> 
> I want to see how you would do it so I can broaden my Mathematica
> perspective.
> 
> Thanks.
> 
> 



  • Prev by Date: Re: Residue Function
  • Next by Date: Re: [6] LinearAlgebra`MatrixManipulation` LinearEquationsToMatrices
  • Previous by thread: Mathstatica vs. built in symbolic statistics in Version 6
  • Next by thread: Re: Re: Number of Differing Digits & Another Problem (want to