問題タブ [math]
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.
python - Python:符号なし32ビットビット単位演算
ソリューションがIPアドレスとネットマスクを扱っている別の投稿に答えようとして、私は単純なビット単位の演算で行き詰まりました。
Pythonで、入力が「32ビット」(おそらく負の)整数またはlongであり、結果が[[ 0、2 ** 32]?
言い換えると、unsignedlong間のCビット演算に対応するPythonの動作が必要です。
編集:特定の問題はこれです:
algorithm - 定期的なタスクが重複するワーカーのスケジューリング
一度に 1 つのタスクしか実行できない 1 人のワーカー (ただし、タスクを即座に切り替えることができます)
与えられたタスクのリスト
-- 「n 秒、m 秒ごと」 (たとえば、3600 秒ごとに 5 秒) として定義
各タスクの最適な開始時間とカウントを見つけるにはどうすればよいですか?
すべてのタスクが「1 秒、60 秒ごと」の場合、それぞれに固有の開始秒があり、カウントは無限 (定常状態) になります。
「4 秒ごとに 1 秒」と「3 秒ごとに 1 秒」の場合、結果は「0、無限、3、3 回」になります。
-- 願わくば最も単純な形式
「開始秒と回数」で詳述されたタスクのリストが既にある場合、追加の {m 秒ごとに n 秒} タスクに対して {start, count} を返す関数はどのようになりますか?
-- (もう少し複雑な形式 --
「m 秒ごとに n 秒」の代わりに
、タスクが「l..o 秒ごとに n 秒」と定義されている場合
、l - o (しかし、タスクが完了するまでその m にコミットする必要があります)、
それによりワーカーの使用率が向上しますか
?最適な 'm' をどのように選択しますか?
java - 方向ベクトルの回転行列
私はしばらくの間、インターネット上でいくつかのアルゴリズムをいじっていましたが、それらを機能させることができないようです。そのため、ここで質問を投げかけます。
ポイントから速度ベクトル ラインをレンダリングしようとしています。線を引くのは難しくありません。長さのある線をvelocity.length
グラフに挿入するだけです。これにより、y 軸方向の点を中心に線が配置されます。これを適切な回転と平行移動で取得する必要があります。
並進ベクトルの計算は難しくありません。速度ベクトルの半分です。しかし、回転行列は私には非常にとらえどころのないものです。方向ベクトルが与えられた場合、<x, y, z>
必要な行列は何ですか?
編集1:見てください。質問を理解していないと、おそらく答えられないでしょう。
これが私が現在持っているものです:
この記事に基づいています。はい、標準の回転行列 (vec_x.x、vec_y.x など) を試しましたが、うまくいきませんでした。列と行を回転させて、効果があるかどうかを確認しました。
編集2:
私のコメントの失礼な言葉遣いについてお詫び申し上げます。
つまり、2 つのエラーが組み合わさったようです。そのうちの 1 つは House MD が指摘したこと (変数の名前付けが本当に悪い: vec_z
was reallyvec_y
など) であり、もう 1 つは、マトリックスをレンダリング エンジンに渡す前に反転する必要があることでした (転置は近い!)。したがって、変更されたコードは次のとおりです。
java - ネットワーク計算用の優れた Java ライブラリ
ネットワーク数学向けで、すでにテスト済みの Java ライブラリを探しています。IP とサブネットを保持し、サブネット マスクを出力したり、IP が特定のサブネット内にあるかどうかを計算したりします。
私は自分自身をロールバックする必要がありますか、またはこれのための堅牢なライブラリが既にありますか?
math - ゲーム開発のための三角形の数学
画面上を移動する三角形(二等辺三角形)を作成しようとしていますが、同時に、ユーザーが方向キー(右または左など)を押すと、それをわずかに回転させます。
三角形のノーズ(頂点)が常に三角形をリードしてほしいです。(あの古い小惑星ゲームのように)。
私の問題は、この背後にある数学にあります。X時間間隔ごとに、三角形を「ある方向」に移動させたいのですが、この方向を見つけるのに助けが必要です(xおよびyの増分/減分)。
三角形の中心点 (セントロイド) を見つけることができ、一番上の x 点と y 点があるので、使用する線ベクトルはありますが、「どのように」作業するかについての手がかりはありません。
古い Sin と Cos の方法と、三角形が回転した量 (角度) に関係があると思いますが、その点については少しさびています。
どんな助けでも大歓迎です。
.net - .NETアプリケーションではどのような数学を使用していますか?
System.Mathにあるものを除いて、.NETアプリケーションではどのような数学を使用していますか?
System.Mathはひどく不十分だと思います。たとえば、いくつかの公式の.NET Frameworkでは、マトリックスの3つの異なる実装を数えることができます。同じことがベクトルにも当てはまります。複素数の1つの実装。任意の有理数のいくつかの異なる実装など。
System.Mathematics
では、架空の名前空間で何を見たいですか?
perl - Perlでバイナリ文字列に1を追加する最も簡単な方法は何ですか?
4 バイトのネットワーク順 IPv4 アドレスを含む変数があります (これは pack と整数表現を使用して作成されました)。別の変数があります。これも 4 バイトのネットワーク順序のサブネットです。それらを一緒に追加して、サブネット内の最初の IP を取得するために 1 つ追加しようとしています。
ASCII 表現を取得するにinet_ntoa($ip&$netmask)
は、ベース アドレスを取得できますが、それはエラーですinet_ntoa((($ip&$netmask)+1)
。次のようなメッセージが表示されます。
何が起こっているのか、私が知る限り、4 バイトを見て、4 バイトが数値文字列を表していないことを確認し、1 を追加することを拒否していることです。
別の言い方をすれば、私がやりたいことは、最下位バイトに 1 を追加することです。これは 4 番目のバイトであることがわかっています。\n\r&\0
つまり、文字列を取得して、文字列で終了したいと考えています\n\r&\1
。それを行う最も簡単な方法は何ですか?
変数をアンパックして再パックせずにこれを行う方法はありますか?
math - 番号範囲の共通部分を検索
2つの数値範囲が交差するかどうかを確認するための最良の方法は何ですか?
私の番号範囲は3023-7430ですが、次の番号範囲のどれがそれと交差するかをテストしたいと思います:<3000、3000-6000、6000-8000、8000-10000、>10000。答えは3000-6000と6000-8000でなければなりません。
プログラミング言語でこれを行うための優れた効率的な数学的方法は何ですか?
algorithm - 最適な長方形ハッチング アルゴリズム
特定の領域のオブジェクトがハッチングを通過できるように、全体の線の長さが最短の長方形をハッチングするアルゴリズムを探しています。
たとえば、5x3 cm の長方形があり、幅 1 cm の平行線を使用してハッチングすると、ハッチを通過できる最大のオブジェクトは、1 cm の正方形になります。全体で 22 cm (つまり、4x3+2x5) のハッチ ラインを使用しました。そのため、1 平方センチメートルの領域を通過させるために、22cm のハッチ ラインを使用しました。
アルゴリズムは、現在の 22cm からハッチ ライン全体を最小化しながら、1 平方センチメートルを超える領域を通過させないパターンを見つける必要があります (オブジェクトは正方形または長方形である必要はなく、重要なのは全体の領域です)。
編集: nlucaroni のリードに従って、平面を等面積の領域に分割すると、少なくとも正六角形のグリッドの周囲長があると述べているハニカム予想を見つけました。これは私の質問に部分的に答えます。
math - 2D 暗黙的スカラー フィールドのアイソ ラインの描画
私は 2D で定義された暗黙的なスカラー フィールドを持っています。2D のすべてのポイントに対して、正確なスカラー値を計算させることができますが、その計算はやや複雑です。
そのサーフェスの等値線、たとえば「0」値の線を描きたいと思います。関数自体は連続していますが、「0」アイソラインは複数の連続インスタンスを持つことができ、それらすべてが接続されているとは限りません。
各ピクセルの値を計算することはオプションではありません。これには数秒程度の時間がかかりすぎるため、可能な限りリアルタイムで行う必要があります。
私が現在使用しているのは、一種の四分木と考えることができる空間の再帰的な分割です。空間の最初の非常に粗いサンプリングを行い、正から負の値への遷移を含む正方形を見つけたら、それを再帰的に 4 つの小さな正方形に分割し、再度チェックして、ピクセル レベルで停止します。四隅の四角形をサンプリングすることにより、正負の遷移が検出されます。これは、そうでない場合を除いて、かなりうまく機能します。エッジの小さな領域で発生し、正方形の角を横切らないトランジションのトランジション検出が失敗するため、描画されるアイソラインが切断されることがあります。
この設定で等値線描画を行うより良い方法はありますか?