3 ms·
It breaks quite early: In [8]: math.log(math.exp(5000) * math.exp(6000)) ---------------------------------------------------------------------------
by dr_zoidberg 10y ago
It breaks quite early:
In [8]: math.log(math.exp(5000) * math.exp(6000))
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
<ipython-input-8-3d6e46c58c45> in <module>()
----> 1 math.log(math.exp(5000) * math.exp(6000))
OverflowError: math range error
In [9]: math.log(math.exp(500) * math.exp(600))
Out[9]: inf
- brianwawok 10y agoHey let's not be a quitter >>> (Decimal(5000).exp() * Decimal(6000).exp()).ln() Decimal('11000.00000000000000000000000')
- dr_zoidberg 10y agoNice catch, but then: In [13]: Decimal(5000000).exp() * Decimal(5000000).exp() --------------------------------------------------------------------------- Overflow Traceback (most recent call last) <ipython-input-13-8333724ae893> in <module>() ----> 1 Decimal(5000000).exp() * Decimal(5000000).exp() Overflow: [<class 'decimal.Overflow'>] The problem is that the multiplication blows the precision of the used format (either double for math.log(...) or the one the decimal module uses). I had also thought about the intention of the question trying to get you to express the sum as bit operations (thought I admit that sounds like going for a very low-level profile), or maybe just "thinking outside the box".
- brianwawok 10y agoHey don't be a quitter, we can make Decimal support way bigger numbers via context
- dr_zoidberg 10y agoAlternative, buzzwordy approach: let's train a convolutional neural network to do addition!
- brianwawok 10y agoCan it run the MEAN stack?
- dr_zoidberg 10y agoYes, and we'll deploy it on The Cloud.