memoization

    0

    1答えて

    下位レベルの関数でテキストを再帰的に解析するトップレベル関数からなるトップダウンパーサを作成しています。下位レベルの関数はトップレベル関数を呼び出すことはありませんが、下位レベルの関数は相互に再帰的であることに注意してください。 パーザはややゆっくり実行されていることに気がつきました。パーザは同じテキストの同じタイプのオブジェクトを同じオフセットで繰り返し解析しようとする可能性があるため、再帰の指

    0

    1答えて

    私はそうのようなmemoizer機能を持っている: static Func<A, R> Memoize<A, R>(this Func<A, R> f) { var cache = new ConcurrentDictionary<A, R>(); return argument => cache.GetOrAdd(argument, f); } そして私も今、私の主な

    0

    1答えて

    This problemこれは単純に言い換えれば、与えられた文字列からなるすべての組み合わせが結合して繰り返しの有無にかかわらずターゲット文字列を形成することができます。 文字列:私たちは、私たちがしなければならないん我々は ターゲットことができるので: wedowhatwemustbecausewecan出力を:我々は、我々は私が撮った アプローチをしていることができなければならないので、何をす

    -1

    2答えて

    これは有名なパスカウントの問題です、私はメモを使用して解決しようとしています。 私を教えてください! def pathCounter(a,b): matrix = [[0 for i in xrange(a)] for i in xrange(b)] if a==0 or b==0: return 1 if matrix[a][b]: re

    1

    1答えて

    0個からn-1までのインデックスが付けられたn個のバルーンが指定されています。各バルーンには配列numで表される数字が塗られています。あなたはすべての風船を破裂するように求められます。あなたが風船を爆発させるならば、あなたはnum [left] * nums [i] * nums [right]コインを得るでしょう。ここで、左と右はiの隣接指数です。バースト後、左右が隣接します。 バルーンを賢く破

    2

    1答えて

    長いデータ型を使ってメソッドを動作させましたが、BigInteger再帰メソッドを呼び出すときに、printlnを実行すると "null"と表示されます。私は値がlongデータ型には大きすぎる過去のn = 94を、行くまで public static long fib_rec(int n){ long result=1; if(n<=2){ return resul

    4

    2答えて

    なぜメモ変換はマージソートの実行時間を改善しないのですか? 私はこの課題を割り当てタスクから持っています。しかし、私が知る限り、Merge Sortは分裂と征服のアプローチ(重複する部分問題なし)を使用しますが、Memoizationは動的なプログラミングに基づいています(重複した部分問題あり)。私はマージソートの実行時間がO(nlogn)であることを知っています。 私はウェブ検索エンジンでも検索

    0

    1答えて

    私はHaskellでいくつかの動的再帰実装を行っています。 私はメモを使って物事をスピードアップすることに決めました。 Monad.Memoは、正確なケースのMemoTトランスを提供しています。しかし、格納された値の内部表現としてMapを使用します。そして、これは私に大きさのスピードブーストを与えましたが、まだ十分ではありません。 libは内部ストレージとしての配列ベースおよびベクトルベースの実装

    2

    1答えて

    私はF#の言語に取り組んでいますが、テストでは、ランタイムは時間の90%以上を平等のために費やしています。そのため、言語は使用できなくなるほど遅いです。計測中、GetHashCode関数はオーバーヘッドの原因としてリスト上でかなり高い値を示しています。何が起きているのかは、メソッド呼び出し中に、メソッド本体(Expr)を呼び出し引数とともに辞書のキーとして使用し、ASTセグメントに対して繰り返しト