Re: Find count of binary number pattern within concatenated
- To: mathgroup at smc.vnet.net
- Subject: [mg91135] Re: [mg91093] Find count of binary number pattern within concatenated
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Thu, 7 Aug 2008 04:39:16 -0400 (EDT)
- References: <200808060903.FAA22227@smc.vnet.net>
Diana wrote:
> Math folks,
>
> Can someone tell me how to find the count of the occurrences of "1101"
> within "11011100101110111100010011010101111001101" generated with the
> FromDigits statements below? I will be increasing "n".
>
> n=13
>
> FromDigits[Flatten[IntegerDigits[Range[n],2]]]
>
> 11011100101110111100010011010101111001101.
>
> FromDigits[IntegerDigits[n, 2]]
>
> 1101
>
> Diana
I'd go with not using FromDigits. Instead partition the concatenated
list of digits, with offset of 1 and length of the number of digits in
n. Then call on the Count (the Mathematica function, not Dracula).
countValInRangeVal[n_,base_] := Module[
{digits=IntegerDigits[n,base], alldigits},
alldigits = Flatten[IntegerDigits[Range[n],base]];
Count[Partition[alldigits,Length[digits],1], digits]
]
If you are fond of long one liners:
countValInRangeVal2[n_,base_] := Count[Partition[Flatten[
IntegerDigits[Range[n],base]],Length[#],1],#]& [IntegerDigits[n,base]]
Other long one-liners might include
http://en.wikipedia.org/wiki/Long_line_(topology)
or perhaps the final sentence of Joyce's "Ulysses".
Daniel Lichtblau
Wolfram Research
- References:
- Find count of binary number pattern within concatenated number
- From: Diana <diana.mecum@gmail.com>
- Find count of binary number pattern within concatenated number