কেন GHCi নীচে ভুল উত্তর দেয়?
GHCi
λ> ((-20.24373193905347)^12)^2 - ((-20.24373193905347)^24)
4.503599627370496e15
Python3
>>> ((-20.24373193905347)**12)**2 - ((-20.24373193905347)**24)
0.0
আপডেট করুন আমি নীচে হাস্কেলের ('s) ফাংশনটি প্রয়োগ করব implement
powerXY :: Double -> Int -> Double
powerXY x 0 = 1
powerXY x y
| y < 0 = powerXY (1/x) (-y)
| otherwise =
let z = powerXY x (y `div` 2)
in if odd y then z*z*x else z*z
main = do
let x = -20.24373193905347
print $ powerXY (powerXY x 12) 2 - powerXY x 24 -- 0
print $ ((x^12)^2) - (x ^ 24) -- 4.503599627370496e15
যদিও আমার সংস্করণটি @ উইলেমভ্যানঅনসেমের নীচে প্রদত্ত কোনওটির চেয়ে বেশি সঠিক বলে মনে হচ্ছে না, তবুও এটি আশ্চর্যরূপে কমপক্ষে এই বিশেষ ক্ষেত্রে সঠিক উত্তর দেয়।
পাইথনও একই রকম।
def pw(x, y):
if y < 0:
return pw(1/x, -y)
if y == 0:
return 1
z = pw(x, y//2)
if y % 2 == 1:
return z*z*x
else:
return z*z
# prints 0.0
print(pw(pw(-20.24373193905347, 12), 2) - pw(-20.24373193905347, 24))
2.243746917640863e31 - 2.2437469176408626e31
একটি ছোট গোলাকৃতি ত্রুটি রয়েছে যা প্রশস্ত হয়। দেখে মনে হচ্ছে একটি বাতিল হওয়া ইস্যু।
a^24
আনুমানিক হয়2.2437e31
, এবং এইভাবে এটি তৈরি করে এমন একটি গোলাকার ত্রুটি রয়েছে।