問題タブ [cubic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 4-sum 実装の二次時間
要素を持つ配列が与えられたx
場合、合計すると 0 になる 4 つの数値を見つける必要があります。また、そのような合計がいくつ存在するかを判断する必要があります。
したがって、3 次時間には 3 つのネストされた反復子が含まれるため、最後の数値を検索するだけで済みます (二分探索を使用)。
代わりにデカルト積 (X と Y に同じ配列) を使用することで、すべてのペアとその合計を 2 次配列に格納できます。したがって、各合計d
について を探すだけです-d
。
これは、二次時間 (に近い) のようになります。
(x
特定の配列入力の場合)353であるため、解は528になるはずですが、代わりにこの解を使用すると257しか見つかりません。立方時間では、528 個の 4 和をすべて見つけることができます。
ひょっとして double の精度が失われるのでしょうか?
編集:BigDecimal
代わりに使用するdouble
ことが議論されましたが、パフォーマンスに影響を与えるのではないかと心配していました. 配列で 353 個の要素しか扱っていませんが、これは何か意味があるのでしょうか?
編集編集: BigDecimal を間違って使用した場合は申し訳ありません。私はこれまで図書館を扱ったことがありません。したがって、複数の提案の後、代わりに BigDecimal を使用してみました
したがって、257 個ではなく 261 個の解を見つけることができました。これは問題があることを示している可能性がありdouble
、実際には精度が失われています。ただし、261 は 528 から遠く離れていますが、原因を突き止めることができません。
最終編集: これは恐ろしく醜いコードだと思いますが、それでも機能しているようです。すでに while を試していましたが、BigDecimal を使用すると、528 の一致すべてを取得できるようになりました。
二次時間に十分近いかどうかはわかりませんが、時間が教えてくれます。
私はあなたにモンスターを紹介します:
javascript - JavaScript の 3 次回帰 (ベスト フィット ライン)
三次回帰を実行できる JavaScript コードを探すのに苦労しています。自分で書きますが、多項式の数学に関する私の理解は、まあ、最適ではありません。
だから、ここに私が探しているものがあります。内部配列が[x、y]である配列の配列の入力が与えられると、関数は[a、b、c、d]の4つのパラメーターを持つ配列の形式で出力を提供します。 、b、c、および d は、式 y = ax^3 + bx^2 + cx + d のパラメーターです。
例: 入力は次のような配列です [[2,5],[5,10],[07,15],[12,20],[20,25],[32,30],[50,35] ]。
これは本質的にテーブルの表現です:
これで、出力は [0.000575085,-0.058861065,2.183957502,1.127605507] になります。これらは、3 次関数の a、b、c、および d パラメーターです。
(参考までに、Excel の LINEST 関数を使用し、配列関数 {1,2,3} を使用して上記の数値セットで実行して得た出力)。
これはどのように行うことができますか?ご指導いただきありがとうございます。
ベスト、トム
r - Rで3次方程式を解析的に解く方法(正確な解)?
数値ではなく、Rで分析的に3次方程式の解を得ようとしています。
私はインターネットで調べて、立方根の式を取得し、次のコードを書きました: リンクは: http://www.math.vanderbilt.edu/~schectex/courses/cubic/
ただし、この関数はほとんどの場合機能しません。これは、数式内の負の数の累乗が原因であると思います。たとえば、R は (-8)^(1/3) の実根 (-2) を取得できないことに気付きました。 . しかし、一般的に正確な3次解を解くために使用できるようにコードを修正する方法がわかりません。
ありがとう。
interpolation - 三次補間が単調であることを保証するにはどうすればよいですか?
一般に: それ自体が単調なデータの任意のセットが与えられた場合、追加の n ポイントを計算して、非単調な 3 次補間 (これを使用する必要があり、他の選択肢はありません) を強制的に単調にする必要がありますか?
特に私にとって: 2 つのサーボ間の関係を計算する必要があるプロジェクトがあります。機械の設計上、サーボは絶対にバックアップしないでください。画像を投稿できればいいのですが、サインアップしたばかりで、まだ評判がありません。代表的なポイントは以下の通りです。
0: [0, 0] (1 への直線)
1: [37.5, 45] (3 次曲線を 2 に)
2: [?, ?] (3次曲線から3)
3: [180, 60] (3 次曲線を 4 に)
4: [?, ?] (3次曲線から5まで)
5: [322.5, 75] (6への直線)
6: [360, 120] (該当なし)
私が望む動作は、ポイント 0、1、3、5、および 6 によって特徴付けられます。ポイント 0 は固定されています。残りは実行時に計算され、単調に増加することが保証されています。プロット全体は、ポイント 3 を中心に対称であることが保証されています。ポイント 2 と 4 を追加して、使用しなければならないサードパーティの線形/3 次補間器ができるだけ滑らかな単調曲線を生成するようにする必要があります。(最小の 2 次導関数)
誰もそれを行う方法を知っていますか?
javascript - かんたん機能作成 40%オフセット
アニメーションは次のタイミング関数に従います: cube-bezier(0.25, 0.1, 0.25, 1.0)
この関数を変更したいので、最後の 40% を取得します。簡単にするために、関数の 50% を終了させたいとだけ言っておきましょう。これどうやってするの。
グラフィカルに、これはそれが何であるかです: https://developer.mozilla.org/files/3429/cubic-bezier,ease.png
そして、グラフィカルに上部のみが表示されるようなパラメーターを使用してキュービックベジエを作成したいので、このグラフの 0.5 から 1 (yaxist の) 部分に見えるものは、同じ線を作成したいのですが、0 から1に。
この機能の作り方を教えてください。
c - Cプログラミングで複数のforループを実行するには?
さまざまな種類の for ループを使用して、1 から 10 までの数字の立方体を見つけようとしています。for ループが評価された後、プログラムが停止し、while ループの評価に進まないのはなぜでしょうか? 誰か助けてくれませんか?ちなみに、for ループと while ループは同じことをするはずです。ありがとう。
PS 私の最初のプログラミング言語は Python です。そのため、C が最初の for ループの後で停止する理由がわかりません... :(