Robert-Reinder Nederhoed wrote:
c = 1 + 10**22
a = 10**22
b = (c**2 - a**2) ** 0.5
b

Hallo,


Ik val midden in de discussie, maar waarom herschrijf je je probleem niet eerst naar

c = g + dc
a = g + da

da >= 0, dc >= 0, da == 0 of dc == 0

Splits a en c op naar gezamenlijk deel g en een zo klein mogelijk verschil.

Dan met middelbare school algebra:

c = g + dc
a = g + da
b = (c^2 - a^2) ^ 1/2
  = ((g+dc)^2 - (g+da)^2) ^ 1/2
  = (g^2 + 2*g*dc + dc^2 - g^2 - 2*g*da - da^2) ^ 1/2
  = (2*g*(dc-da) + dc^2 - da^2) ^ 1/2

als da = 0, dan wordt dit zelfs

b = (2*g*dc - dc*dc) ^ 1/2

wat er imho heel wat vriendelijk uitziet.

In ieder geval ben je de g^2 factor kwijt, wat een aantal hoofdbrekens zou moeten schelen.


Albert

_______________________________________________
Python-nl mailing list
Python-nl@python.org
http://mail.python.org/mailman/listinfo/python-nl

Antwoord per e-mail aan