max(), sum(), next()

Manu Hack manuhack at gmail.com
Sat Sep 6 04:08:02 EDT 2008


On Sat, Sep 6, 2008 at 12:57 AM, castironpi <castironpi at gmail.com> wrote:
> On Sep 5, 9:20 pm, "Manu Hack" <manuh... at gmail.com> wrote:
>> On Fri, Sep 5, 2008 at 1:04 PM, castironpi <castiro... at gmail.com> wrote:
>> > On Sep 5, 3:28 am, "Manu Hack" <manuh... at gmail.com> wrote:
>> >> On Thu, Sep 4, 2008 at 4:25 PM, castironpi <castiro... at gmail.com> wrote:
>> >> > On Sep 4, 2:42 pm, bearophileH... at lycos.com wrote:
>> >> >> David C. Ullrich:
>>
>> >> >> > At least in mathematics, the sum of the elements of
>> >> >> > the empty set _is_ 0, while the maximum element of the
>> >> >> > empty set is undefined.
>>
>> >> >> What do you think about my idea of adding that 'default' argument to
>> >> >> the max()/min() functions?
>>
>> >> >> Bye,
>> >> >> bearophile
>>
>> >> > For max and min, why can't you just add your argument to the set
>> >> > itself?
>>
>> >> > The reason max([]) is undefined is that max( S ) is in S.
>>
>> >> It makes sense.
>>
>> >> >The reason sum([]) is 0 is that sum( [ x ] ) - x = 0.
>>
>> >> It doesn't make sense to me.  What do you set x to?
>>
>> > For all x.
>>
>> But then how can you conclude sum([]) = 0 from there?  It's way far
>> from obvious.
>
> You can define sum([a1,a2,...,aN]) recursively as
> sum([a1,a2,...a(N-1)])+aN.  Call the sum sum([a1,a2,...,aN]) "X", then
> subtract aN.
>
> sum([a1,a2,...a(N-1)])+aN=X
> sum([a1,a2,...a(N-1)])+aN-aN=X-aN
>
> For N=2, we have:
>
> sum([a1,a2])=X
> sum([a1,a2])-a2=X-a2
> sum([a1,a2])-a2-a1=X-a2-a1
>
> Since X= a1+ a2, replace X.
>
> sum([a1,a2])-a2-a1=(a1+a2)-a2-a1
>
> Or,
>
> sum([a1,a2])-a2-a1=0
>
> Apply the recursive definition:
>
> sum([a1])+a2-a2-a1=0
>
> And again:
>
> sum([])+a1+a2-a2-a1=0
>
> And we have:
>
> sum([])=0.

It makes more sense now, I just wanted to point out that only with
sum([x]) = x, you can't get sum([]) = 0.



More information about the Python-list mailing list