問題タブ [programming-pearls]
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.
modulo - モジュラス演算子が遅いのはなぜですか?
「Programming Pearls」本からの言い換え (本は 90 年代後半のものであるため、古いマシンの C 言語について):
整数算術演算 ( +
、-
、*
) には約 10 ナノ秒かかることがありますが、%
演算子には最大 100 ナノ秒かかります。
- なぜそんなに差があるのでしょうか?
- モジュラス演算子は内部でどのように機能しますか?
- 時間的には割り算( )と同じ
/
ですか?
algorithm - パールのプログラミング: コラム 9.3 二分探索 - 範囲の初期化
セクション 9.3 で、Job Bentley は修正された二分探索を提示します。
9.3 に示されている典型的な実装とより良いアプローチの短い抜粋
異なる不変式との修正された/効率的な比較..
ループの外側では、キーがインデックス 'high' にあるかどうかがチェックされます。変更された二分探索では、左側のインデックス 'low' は (0 ではなく) -1 で始まり、'high' インデックスは (n-1 ではなく) n で始まり、ループが実行されます。
この変更された検索は、low = 0 および high = n-1 に設定しても機能するようです。
しかし、Job Bentley のコードを推測するのは避けたいと思います。では、なぜ彼は low を -1 に、high を n に設定しているのでしょうか? これだけが機能するコーナーケースはありますか?
python - Pythonデータ構造のメモリフットプリントが奇妙に動作する
私はプログラミングパールの1つを試していました:
重複のない最大 1,000 万個の 7 桁の整数を含むファイルがあるとします。たった 1.5Mb の RAM を使用し、データを 1 回だけ読み取って、これらの数値を昇順で出力する効率的な方法は何ですか? 1Mb の RAM しかなく、他のストレージがない場合の結果はどうなりますか? 重複が許可された場合、あなたの答えはどのように変わりますか?
テスト ケース I を作成するために、8999999 個の数値を生成し、ファイルに書き込みました。次に、各行について、同じものをツリーに挿入し始め、最終的にトライ構造を作成しました。
サンプルコード:
サンプル ファイル data2.txt には 20 個のレコードがあります
生成されたツリーは
問題は、構築されたツリーのメモリ サイジングを行うと、20 行で 240 バイトのメモリ フット プリントが表示されることです。
100 行で、ツリーのサイズは 368 バイトになります
また、8999999行で368バイトになります
xtree
データをフィードするだけの名前の補助マップを作成しました
xtree と tree のサイズはバイト単位です。
誰かこれがどうしてそうなのか説明してくれませんか..??
regex - ファイル内の N 番目の文字列一致を置換
sed s/regexFind/replacement/n
そのため、行内の単語の n 番目の出現を置き換えるために使用する多くの解決策を見つけました。
例えばs/hello hello hello/world/2
>hello world hello
ただし、私が探しているのは、ファイルに対する 3 番目の一致の発生を更新することです。
基本的にsed -i s/Hello/world/2 $filename
、ファイルの内容を次のように置き換えることが期待されていました。
しかし、そうではありません。助言がありますか?
部分文字列を置き換えるファイルがUTF-8ではないため、Pythonスタイルの読み取りごとのソリューションを使用しないことを検討しています。
tcl - TCL の -quiet とは
ステートメントが真または偽を与える場合、以下が必要です。また、「静か」について説明してください
与えるとは何ですか?注:-
$source
はI_TEST_MODE4
です。