我在查找OCaml中典型指數函數的更快版本時遇到了問題。這裏有一些指引,我試圖遵循: 不是的expt b n ==> b * (b * (b ...)典型的遞歸指數版本的函數接收兩個參數B和N,基本上採取分而治之的立場。 如果n爲偶數,則fastexpt b n => (b^(n/2))^2否則,如果n是奇數則fastexpt b n => b * (b^(n - 1)) 下面是我迄今編寫的代碼:
我想反轉長雙的指數。 假設x = 3.5e1356。我想x是3.5e-1356。 我有這樣的代碼: long double x = 3.5e1356L;
int exponent;
long double fraction = frexpl(x, &exponent);
// recreate number with an inverted exponent
long double ne