memoization

    2熱度

    1回答

    它可能會變得很愚蠢,但我對以不可變方式評估Scala流評估有疑問。假設我有一個像這樣的Stream(所有行在repl中執行); val a = Stream(1,2,3,4,5,6,7,8,9,10); 一個:scala.collection.immutable.Stream [INT] =流(θ1,) 當運行下面的行; a(3); a 我得到了; scala.collection.im

    0熱度

    1回答

    我在我的系統,並根據事件和上次計算值計算值的功能活動: 當我把這個功能我想這種行爲: 如果有新的事件,它應該使用事件和去年memoized值計算新值,memoize的結果 如果沒有新的事件,它應該返回memoized 這裏最後的值執行我CA我與: <!-- language: lang-scala --> class EventBasedMemo[Value, Event](initialVal

    1熱度

    1回答

    我試圖編寫一個memoize函數,它將一個函數作爲參數並返回一個相似的memoized函數。 function memoize<T extends Function, R>(f: T): T { const memory = new Map<string, R>(); const g = (...args: any[]) => { if (!memory.get(a

    1熱度

    1回答

    我已經得到了非記憶代碼正常工作,它計算了'n'可以表示的方式的數量,給出了m個可能的值。但是我不能在下面的代碼中找出爲什麼memoization表memoNM返回0而不是在這種情況下是24的答案。表memoNM只是在遞歸樹中存儲以前計算的值以便更快地查找。有人可以幫幫我嗎? import java.util.ArrayList; import java.util.Arrays;

    0熱度

    1回答

    我有四個數字,「1」,「2」,「3」,「4」。 該程序的輸入是一個整數,只能包含上述4位數字。將會有很多投入。的輸入 實施例:1123,4123,4444 我需要計算給定輸入粘附到下面的規則的排列的數量: 沒有兩個類似數字應鄰近彼此。例如:1223不允許,但允許2123。 開始結束的數字不應該是一樣的。他們被認爲是循環相鄰。例如:2132是不允許的。 如果輸入的長度是4位數,則結果排列的長度也應該

    2熱度

    1回答

    最近,我遇到了這個問題,因爲時間的推移我無法解決它。 '製作一個程序,可以通過r字段使用n種不同的顏色來繪製r的方式,而不會在同一行,同一列使用相同的顏色。 我編碼爲它,但它需要超過30分鐘回答6只6乘6色的領域。 所以,我想到了多維memoization,但我沒有想法在我的代碼中添加memoization數組。 請幫我讓我的代碼更快或建議新的方式。 #include<stdio.h> #inc

    1熱度

    3回答

    我還沒有看到(還?)JSON.stringify在Node.JS中是非確定性的。 無法保證它在規格級別上是確定性的。 但是V8怎麼樣; 它的實現有確定性嗎? 有沒有保證它能夠保持未來版本的V8的確定性? 編輯: 確定性我的意思是下面的說法是真實的,不管什麼json_str值。 (給定的值是一個有效的JSON字符串。) const obj = JSON.parse(json_str); asser

    0熱度

    1回答

    我知道memoize的目的是緩存值,以便代碼可以更快運行,不必每次都重新計算相同的答案。我的問題源於返回一個函數(我認爲)。 google chrome調試器對我來說並不是那麼有用,因爲每次我嘗試運行這個memoize函數時,它都會從argus變量(在第4行,我相信)一路下降到分號。而且,結果總是返回一個空對象,而不是將結果存儲在結果中。 我先定義一個函數: function add(a,b){

    3熱度

    1回答

    這是一個問題:給定磚塊數量n,介於3和200之間,返回可以構建的不同樓梯的數量。每種類型的樓梯應該由2個或更多的步驟組成。不允許兩個步驟處於同一高度 - 每個步驟必須低於前一個步驟。所有步驟都必須包含至少一個磚塊。步驟的高度被分類爲構成該步驟的磚的總量。 例如,當N = 3,則只有1個的選擇如何構建樓梯,與具有2的高度和具有1的高度在第二步驟中的第一步驟:(#表示磚) # ## 21 當N

    1熱度

    1回答

    說我正在調試代碼,其中涉及的一個或多個功能是在memoize的幫助下定義的。我將編輯一些代碼,在REPL中重新加載文件,然後嘗試新的代碼。但是如果這個bug仍然存在,我總是會質疑是否因爲我沒有修復這個bug,或者因爲memoize緩存了錯誤結果。 那麼,有沒有什麼方法可以重新啓動REPL,我可以用它來確保memoize已經失去了內存? (請注意,在REPL會話消除了memoize電話既繁瑣,有時甚