off topic but please forgive me me and answer

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Sat Apr 3 22:03:45 EDT 2010


On Sat, 03 Apr 2010 09:35:34 -0700, Mensanator wrote:

> On Apr 3, 10:17 am, Steven D'Aprano <st... at REMOVE-THIS-
> cybersource.com.au> wrote:
>> On Sat, 03 Apr 2010 15:43:41 +0100, Martin P. Hellwig wrote:
>> > I am replying to this post not because I disagree but because it
>> > postalogically  fits the best (I am by no means an expert either).
>>
>> > IMHO, the crackpot in this regard is actually partially right,
>> > multiplication does mean that the number must get bigger, however for
>> > fractions you multiply four numbers, two numerators and two
>> > denominators. The resulting numerator and denominator by this
>> > multiplication get indeed bigger.
>>
>> But you're not multiplying four numbers,
> 
> You are if you're using Rationals.

That is sheer unadulterated nonsense.

A rational number (element of Q) is not a pair of numbers, it is a unique 
single point on the real number line R which does not depend on either 
the way you calculate it, or the representation you use to write it.

The single number 1/2 can be written as any of 1/2, 2/4, 5/10, 1234/2468 
or any of an infinite number of ratios representations. It can be written 
as a decimal expansion 0.5, or a binary expansion 0.1, or the negative-
binary expansion 1.5, or as the base-eleven infinite expansion that 
starts as 0.55555...

Numbers can also be written as continued fractions. The continued 
fraction representation for 1/2 is unexciting and happens to include two 
digits: [0; 2]. But the continued fraction representation of (say) 5/7 is 
[0; 1, 2, 2]. 5/7 isn't four numbers, or three, or two. It is one number.

You might as well argue that 43/92 is "four numbers" -- you have a 4, and 
3, and 9, and a 2, hence four numbers. The argument that 1/2 is two 
numbers is exactly as foolish as that.


>> you're multiplying two numbers.
> 
> Because they're expressed as Decimals.

No, the number of operands is independent of the types of the operands. 
Multiplication is a binary operator: it takes exactly two arguments. Not 
four, or six, or one. Regardless of whether I write:

Fraction(1,2)*Fraction(7,14)
Decimal('0.5')*Decimal('0.5')
0.5*0.5
MyFraction.from_roman('I', 'II')*MyContinedFraction([0, 2, 0, 0, 0])

I still have two numbers being multiplied.


>> One-half is not "two numbers",
> 
> Sometimes it is.

Only on Bizarro world.


>> that would be a tuple
> 
> Like this?
> 
>>>> gmpy.mpq('0.5')
> mpq(1,2)

No, that's not a pair of numbers. It is a single number, equal to:

  ∑(i=1,∞,9/10**i)
----------------------
  (ln(e)+sin(5π/2))

which is also a single number.


>> or a list or
>> possibly a coordinate pair. One-half is a single number,
> 
> When dealing with crackpots, it does not help to use the wrong
> arguments. 

And you think that telling the crackpot that he is right, multiplication 
always leads to bigger numbers, is somehow going to convince him that he 
is wrong about multiplication always leading to bigger numbers?



> When multiplying gmpy.mpq(2,3) by gmpy.mpq(2,3), the
> numerator and denominator have both indeed gotten bigger.

So what? "One quarter" is bigger (longer) than "one half". Your point is?

And in any case:

>>> Fraction(3, 4)*Fraction(2, 3)
Fraction(1, 2)

Would you still like to argue that the numerator and denominator always 
get bigger when you multiply two fractions?



> The trick is that when combined, the overall result is smaller.

 
>> the number which
>> if you double it gives one.
>>
>> Fortunately multiplication is consistent. Multiplying the two numbers
>> 0.5 and 0.5 is exactly the same as multiplying 1*1 and 2*2 then
>> dividing to get a single number. It's not the same as multiplying 1*1
>> and 2*2 to get two numbers, 1 and 4.
>>
>> You say that multiplication means that the number "must get bigger".
> 
> Yes, not in every case, but in many cases it does.

That makes no sense. It "must" get bigger, except for the cases where it 
doesn't? Or to put it another way: No, multiplication doesn't necessarily 
make numbers bigger.


>> 5*1 = 5
>> 5*0 = 0
>> 5*-2 = -10
>>
>> I hope you won't try to argue that 5, 0 and -10 are all bigger than 5.
> 
> Yes, but these special cases don't help. It needs to be pointed out that
> the argument is wrong even in cases like 2/3 * 2/3.

The argument is that multiplication ALWAYS makes numbers bigger. Martin, 
out of some misguided and confused sense that the representation of a 
number was somehow relevant, argued that this is correct. It's not 
correct, not even for integers, let alone rationals.

This is why I said that Martin should stop trying to justify the 
crackpot's belief that multiplication always makes numbers bigger, even a 
little bit. It's not even true for integers. It's not even true for 
positive (non-zero) integers. Arguments about numerators and denominators 
are just red-herrings.

If the crackpot claimed that dolphins were fish, does it help to say he's 
partly right because dolphins live in water and have fins and a tail and 
a head just like fish? No. He wouldn't be partly right, he would be 
utterly, completely, 100% wrong, and he is utterly, completely, 100% 
wrong when he says multiplication always leads to bigger numbers.

For many disagreements, neither party has it completely right and the 
truth lies somewhere in between. This is not one of them. Given two 
positions, that 1+1=2 and 1+1=7, the correct answer isn't halfway between 
them. Given two positions, that 1/2 multiplied by 1/2 is 1/4, or that 1/2 
multiplied by 1/2 is NOT 1/4, the truth is not "both positions are partly 
correct". One position is just *wrong*.



-- 
Steven



More information about the Python-list mailing list