3

以下の二次式については、複数のabutfixed bとがありcます。

ここに画像の説明を入力してください

効率的に実行される関数を作成したいと思いpartial applicationます。つまり、私の関数は固定値を再計算しません(とのためbc


これが私の解決策です

let r b c = let z = b *. b in fun a -> (-.b +. sqrt (z-.4.0*.a*.c))/.(a*.2.0);;

この解決策はうまくいくと思いますが、それが十分に効率的かどうかはわかりません。b^2他のパーツがすべてであるのを見たので、私はちょうど修正するために作りましたa

誰でも私にもっと良い解決策を与えることができますか?

4

1 に答える 1

2

ええ、それは目前の状況に対処する正しい方法です。別の形式はあまり役に立ちません(これが必要な精度を得る限り)。あなたも外に移動したいかもしれません4*c

let r b c = let z = b *. b and c4 = 4.0 *. c in
            fun a -> (-.b +. sqrt (z-.a*.c4))/.(a*.2.0);;
于 2012-12-05T17:30:04.987 に答える