プログラミング

プロおよび熱狂的プログラマーのためのQ&A

9
文字列のハッシュ関数
私はC言語でハッシュテーブルに取り組んでおり、文字列のハッシュ関数をテストしています。 私が試した最初の機能は、ASCIIコードを追加してモジュロ(%100)を使用することですが、データの最初のテストでは結果が良くありません。130ワードで40衝突です。 最終的な入力データには8 000ワードが含まれます(ファイル内の辞書ストアです)。ハッシュテーブルはint table [10000]として宣言され、txtファイル内の単語の位置を含みます。 最初の質問は、文字列のハッシュに最適なアルゴリズムはどれですか?そして、ハッシュテーブルのサイズを決定する方法は? 前もって感謝します ! :-)



1
Roslyn SyntaxNodesは再利用されますか?
私はRoslyn CTPを調査してきましたが、これはExpression Tree APIと同様の問題を解決しますが、どちらも不変ですが、Roslynはまったく異なる方法でそうします。 Expressionノードは親ノードへの参照がなく、を使用して変更ExpressionVisitorされます。そのため、大きなパーツを再利用できます。 SyntaxNode反対側のRoslyn は親への参照を持っているため、すべてのノードは事実上、再利用できないブロックになります。、などのメソッドはUpdate、ReplaceNode変更を加えるために提供されています。 これはどこで終わりますか?Document?Project?ISolution?APIは、ボタンの代わりにツリーの段階的な変更を促進しますが、各ステップは完全なコピーを作成しますか? なぜ彼らはそのような選択をしたのですか?私が見逃している興味深いトリックはありますか?

5
gitはファイルハッシュをどのように計算しますか?
(によって返されるツリーオブジェクトに保存されているSHA1ハッシュgit ls-tree)(で返されるファイルの内容のSHA1ハッシュが一致しませんsha1sum) $ git cat-file blob 4716ca912495c805b94a88ef6dc3fb4aff46bf3c | sha1sum de20247992af0f949ae8df4fa9a37e4a03d7063e - gitはファイルハッシュをどのように計算しますか?ハッシュを計算する前にコンテンツを圧縮しますか?
124 git  hash  sha1  checksum  git-hash 

13
java.net.UnknownHostException:サーバーの無効なホスト名:ローカル
エラーを解決するために私が取るべき手順は何ですか? java.net.UnknownHostException: Invalid hostname for server: local Androidエミュレータで新しい仮想ホスト名を追加しましたが、結果は java.net.UnknownHostException virtualhostname at java.net.InetAddress.lookUpHostByName(InetAddress.java:506) PCで仮想ホストのURLを入力すると、ディスプレイで機能します。次に、エミュレータを実行してLogcatを確認したところ、200、202、またはエラーコード番号の場合、HTTPステータスを読み取ったり確認したりできませんでした。それは単にに戻ったUnknownHostException
124 java 

7
値の順序を変更せずに因子のレベルを並べ替える
数値変数とカテゴリfactor変数のデータフレームがあります。これらの要因のレベルの順序は、私が望む順序ではありません。 numbers <- 1:4 letters <- factor(c("a", "b", "c", "d")) df <- data.frame(numbers, letters) df # numbers letters # 1 1 a # 2 2 b # 3 3 c # 4 4 d レベルの順序を変更すると、文字とそれに対応する番号が一致しなくなります(この時点以降、私のデータはまったく意味がありません)。 levels(df$letters) <- c("d", "c", "b", "a") df # numbers letters # 1 1 d # …
124 r  levels 

2
Haskellデータ型のメモリフットプリント
Haskellにデータタイプの値を格納するために必要な実際のメモリ容量を見つけるにはどうすればよいですか(主にGHCを使用)。実行時に(GHCiなどで)評価することは可能ですか、それともそのコンポーネントから複合データ型のメモリ要件を見積もることは可能ですか? 一般的に、タイプのメモリ要件場合aとb知られている、などの代数データ型のメモリオーバーヘッドは何です。 data Uno = Uno a data Due = Due a b たとえば、これらの値が占めるメモリ内のバイト数は? 1 :: Int8 1 :: Integer 2^100 :: Integer \x -> x + 1 (1 :: Int8, 2 :: Int8) [1] :: [Int8] Just (1 :: Int8) Nothing ガベージコレクションの遅延により、実際のメモリ割り当てが高くなることを理解しています。遅延評価のために大きく異なる場合があります(サンクサイズは値のサイズとは関係ありません)。問題は、データ型が与えられた場合、完全に評価されたときにその値がどれだけのメモリを消費するかということです。 :set +sGHCiにはメモリ統計を表示するオプションがあることがわかりましたが、単一の値のメモリフットプリントを推定する方法は明確ではありません。

3
ReSharper / C#で「デリゲート減算の結果は予測できません」?
myDelegate -= eventHandlerReSharper(バージョン6)の問題を使用する場合: デリゲートの減算の結果は予測できません この背後にある合理的な理由は、ここでJetBrainsによって説明されています。説明は理にかなっており、それを読んだ後、私は-デリゲートでの私の使用をすべて疑っています。 それでは、 ReSharperを不機嫌にすることなく、自動以外のイベントを作成できますか? または、これを実装するためのより良いおよび/または「正しい」方法はありますか? または、ReSharperを無視できますか? 簡略化したコードは次のとおりです。 public delegate void MyHandler (object sender); MyHandler _myEvent; public event MyHandler MyEvent { add { _myEvent += value; DoSomethingElse(); } remove { _myEvent -= value; // <-- ReSharper warning here } }

3
インライン変数はどのように機能しますか?
2016年のOulu ISO C ++標準会議で、インライン変数と呼ばれる提案が標準委員会によってC ++ 17に投票されました。 簡単に言えば、インライン変数とは何ですか、どのように機能し、何に役立つのですか?インライン変数はどのように宣言、定義、使用する必要がありますか?
124 c++  c++17 


6
PHPの配列要素のキーをリセットしますか?
問題は、たとえばアレイのキーをリセットする方法です。 Array ( [1_Name] => Array ( [1] => leo [4] => NULL ) [1_Phone] => Array ( [1] => 12345 [4] => 434324 ) ) にリセット: Array ( [1_Name] => Array ( [0] => leo [1] => NULL ) [1_Phone] => Array ( [0] => 12345 [1] => 434324 …
124 php 

4
無限リストでのfoldlとfoldrの動作
この質問の myAny関数のコードでは、foldrを使用しています。述語が満たされると、無限リストの処理を停止します。 私はfoldlを使って書き直しました: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where step acc item = p item || acc (step関数への引数は正しく逆になっていることに注意してください。) ただし、無限リストの処理を停止しなくなりました。 私はApocalispの答えのように関数の実行を追跡しようとしました: myAny even [1..] foldl step False [1..] step (foldl step False [2..]) 1 even 1 || (foldl step …


23
XDebugを無効にする方法
XDebugをインストールしてからサーバーが遅くなったと思います。したがって、私の仮説をテストするために、XDebugを完全に無効にしたいと思います。これを行う方法についてのチュートリアルを探していましたが、そのような情報が見つかりません。
124 php  xdebug  apc 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.