2**2**2**2**2 wrong? Bug?

mensanator at aol.com mensanator at aol.com
Mon Jul 16 19:07:03 EDT 2007


On Jul 15, 4:28 pm, Wayne Brehaut <wbreh... at mcsnet.ca> wrote:
> On Fri, 13 Jul 2007 14:32:03 -0700, "mensana... at aol.com"
> <mensana... at aol.com> wrote:
> >On Jul 13, 2:52 pm, Wayne Brehaut <wbreh... at mcsnet.ca> wrote:
> >> On Fri, 13 Jul 2007 11:30:16 -0700, Paul McGuire <pt... at austin.rr.com>
> >> wrote:
>
> >> >On Jul 13, 1:20 pm, Wayne Brehaut <wbreh... at mcsnet.ca> wrote:
> >> >> On Mon, 09 Jul 2007 23:51:25 -0700, "mensana... at aol.com"
>
> >> >> <mensana... at aol.com> wrote:
> >> >> >On Jul 9, 11:42?pm, Paul McGuire <p... at austin.rr.com> wrote:
> >> >> >> On Jul 9, 11:21 pm, "Jim Langston" <tazmas... at rocketmail.com> wrote:> In Python 2.5 on intel, the statement
> >> >> >> > 2**2**2**2**2
> >> >> >> > evaluates to>>> 2**2**2**2**2
>
> === 8< ===
>
> >> >> >Did you count the 'L'?
>
> >> >> numdigits(n)?
>
> >> >> What?  'L' is a digit in Python?  I'm going back to Fortran!
>
> >> >> wwwayne
>
> === 8< ===
>
> >> >'L' counts for 50, but only when you use Roman font.
>
> >> WTL?!  Not Times  New Roman I hope?
>
> >> Now I'll have to extend my remarks below to include:
>
> >>         L**L**L
> >>         D**D**D
> >>         M**M**M
> >>         etc. (since I don't recall what comes next)
>
> >> though these (L, D, M, ...)  would seem to be numbers rather than
> >> digits: the Romans used a base-1 system
>
> >No, "base" refers to a Positional Number system for which
> >radix 1 is undefined.
>
> >You can call Roman Numerals a Tally System of Radix 1.
>
> I can call it what I want--within reason--

Noted.

> so long as those I'm mainly
> addressing understand what I mean and the context in which I'm saying
> it.  As I note in my other response to your response below, my remark
> was intended to be humorous, and everyone else who responded took it
> that way.

But this is comp.lang.python, not sci.math. And in that context
"base" implies positional number system. To assume anything else
is not within reason.

>
> There's no need to get all formal in such a context, and there's no
> harm in defining a  tally system to be 1-based or to be a base-1
> system.

You do know that "radix 1" is the proper usage? Since "base 1" is
meaningless in some contexts? Programming languages tend to be a
bit anal about syntax, so yes, you do need to get all formal.

> If I had intended this to be a formal discussion instead of
> just having a little fun (and sorry for doing that) I would have
> instead said: "Define a base-1 number system as...".
>
> Since you clearly don;t want to accept my terminology and assume
> there's just one right one, please seehttp://www.psinvention.com/zoetic/basenumb.htmfor an independent
> opinion of the reasonableness of using this term: "Base Valued Numbers

I prefer Knuth's "The Art of Computer Programming" where these
things are presented formally rather than the informality of
some stupid web page.

>
> Any use of numbers implies the use of a base value for the numbers.
> The simplest base value to use in a numbering scheme is '1'."

And I didn't say you couldn't use it. Just not with positional
number systems.

>
> Because we're most familiar with the use of the term "base" in the
> context of positional notation in no way implies that's the only
> possible context in which it can be used

And I didn't say it was the only context. But since this context
happens to be Python, that argument is moot.

> --or has been used--with
> perfectly clear meaning.  So the Roman system was based on the number
> 1 and was, therefore, 1-based or base-1.

You should say "radix 1" to be unambiguous.

>
> Even in the context of positional systems it's perfectly clear what a
> base-1 system would be and the fact that it's generally excluded isn;t
> because it's not cleaar what it weould be, but only that most assume
> it isn't of any uise,

An assumption that is, in fact, true.

> so exclude it.  As we all know:

Oh boy, here we go. And you were doing so good up to this point.

>
> 1^0 = 1
> 1^1 = 1
> 1^n = 1 for any positive natural number
>  [and negative natural numbers don't exist, but extension to negative
> integers is left as an exercise for the reader]
>
> In the base 1 positional number system, what is the value of:
>
> 1
> 11
> 111
> 1...1 (with n 1s)?

These numbers don't exist in a positional number system of radix 1.

>
> And would the value be any different if I wrote them:
>
>       1
>     11
>   111
> 1...1 (with n 1s)?

No, because they don't exist either.

>
> In pictures:
>
> Pos?   ?
> Value  1
> Digit    1
>
> Pos?   ?  ?
> Value  1  1
> Digit    1  1
>
> Pos?   ?  ?   ?
> Value  1  1  1
> Digit    1  1  1
>
> Pos?   ?  ...   ?
> Value  1  ...  1 (n positions)
> Digit    1  ...  1 (n 1s)
>
> >Tally sytems ARE defined for radix 1, but operate
> >completely different from positional systems.
>
> Clearly, the algorithm to find the value of a base-1 number  is to
> multiply the value of each position (1) by the digit in that position
> (1) and add the results--just as you would do for any other positional
> system.
>
> One common assumption for excluding base-1 is that this can't be a
> proper positional number system because there's no zero digit,

How is it you know this and still get it wrong?

> so how
> can we represent the 0 value of a position?

You can't. Period.

> The obvious answer is that
> there is no way of knowing what power of 1 each position represents
> anyway,

Huh? The power IS the position!

> since the value of each and every  position is 1,

Each position is a_p*base**p where p is the position and "a" taken
from the set of digits[:base]. With base=1, there can only be one "a".

> so we just
> leave out positions whose value is zero;

What makes you think there are any?

> equivalently, we just admit
> that the base-1 tally system is equivalent to the base-1 positional
> system so far as counting is concerned, since we don't count things
> that aren't there.

There aren't any things that aren't there. There are an infinite
number of positions a_p*base**p and since EVERY a_p is 1, and
every base**p is 1 (at least you got that right), EVERY position
is 1*1**p. The only number that can be represented is infinity.

You can't have a 0 equivalent (whether actual or by hiding),
otherwise you would have radix 2. You can only have a 0 if
digits=[0]. But then the only number you can represent is 0.

Having only infinity or 0 isn't very useful. THAT'S why radix 1
is undefined for positional number systems. Your lame attempt
to circumvent this would be called "crackpot" over in sci.math.

>
> I claim this demonstrates that your statement is incorrect:

The demonstration contains a fallacy.

> so far as
> counting or representing a count is concerned the base-1 tally system
> is the base-1 positional system, and is the base-1 system I claim
> Roman numerals represent using various shorthand symbols and rules
> (like subtracting the value of lesser-valued symbols when immediately
> to the left of a higher-valued one--and this is a loose description,
> so please don't look for counter-examples to prove me wrong here too).

Ok, I won't look for counter-examples. BTW, that rule was invented
in the Middle Ages, the Romans didn't use it so you don't have to
either.

>
> Of course, by "operate completely different from positional systems"
> you may have meant that when you go beyond counting to operations on
> and between such numbers the usual rules and algorithms of positional
> systems don't apply--but what has that to do with counting the number
> of digits in a number respresented in this base-1 system?

The count will always be infinity. But I was refering to addition
being done by concatenation, which is different than how positional
number systems do addition. You should try it sometime. It's fairly
easy when you drop the Middle Ages rule.

> An
> arithmetic on numbers (whether written using a positional system or
> not) is a completely different animal than the base set of objects
> themselves, and doesn't alter the fact of whether the numbers are or
> aren't written in a positional notation!

As long as the radix isn't 1.

>
> And the p-adic numbers (http://en.wikipedia.org/wiki/P-adic_number)
> also use a positional notation, but don't follow what you would
> probably regard as "the only true rules and algorithms" of a
> positional notation; so there's no such thing as "_the_ positional
> notation".

And Python doesn't use p-adic numbers.

>
> But I digress (but only because provoked!)...

Sorry, didn't know you had a hair up your ass.

>
> >> [for purposes of this argument, at least]
>
> This statement is the informal equivalent to  saying  "Define a base-1
> number system as...", as I noted above.

You may have noted it, but you didn't define it.

> If you'd noted this, and understood it,

I understood that what you said was wrong.

> or were willing to accept it whether or not you
> understood it,

Why would I accept what I don't understand? Because YOU
say so?

> you'd have saved us both some bother--

Others read these threads. If only one person learns something,
then it's not bother.

> but me more than you I guess,

Yeah, a real shame. Better to be thought a fool than to open
one's mouth and remove all doubt.

> so maybe you were just trolling?

Of course not. Not everyone has read Knuth. I'm just pointing
out that your positional number system of radix 1 is simply
a crackpot concept mathematically and you're doing a disservice
to the newbies.

>
> wwwayne




More information about the Python-list mailing list