On Sat, 03 Apr 2010 09:35:34 -0700, Mensanator wrote: > On Apr 3, 10:17 am, Steven D'Aprano <st...@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 -- http://mail.python.org/mailman/listinfo/python-list