tail-recursion

    1熱度

    1回答

    問題 我有一個分配給寫球拍函數: 需要起點,目的地(既作爲3個字符的機場代碼), 和航班數據列表,並返回從起點到終點的所有航班的遲到統計信息的列表 ,並將單元格(來源目的地)作爲第一個元素。 數據必須格式化爲六個比例,比例至少爲1,15,30,60,120和180分鐘的航班比例。 在我的代碼中,我寫了一個尾先遞歸函數,每當找到匹配的飛行數據片段時,它就會在一個長度爲6的矢量中增加一個值。然後,一旦

    -2熱度

    1回答

    int gcd(int a,int b){ if(a == b) return a; else if (a>b) return gcd(a-b,b); else return gcd(a,b); } 例如,我認爲這是尾遞歸,因爲你不調用另一個函數。 int gcd(int a,int b){ int x; if(a == b) x=a;

    1熱度

    1回答

    我試圖用尾遞歸解決n個問題,因爲它比標準遞歸更快,但是我們無法確定如何使它全部工作。我擡頭一看這個問題背後的理論和發現,是被什麼東西給解決方案稱爲這是由下式給出「電話號碼」: 其中T(1)= 1和T (2)= 2 我創建了評估這個方程遞歸函數,但它只能快速上升到T(40),我需要它來計算,其中n> 1000,目前由我估計會採取計算天數。 尾遞歸似乎是我最好的選擇,但我希望這裏有人可能知道如何使用尾

    15熱度

    1回答

    雖然我明白尾遞歸優化是非Pythonic,但我想出了一個快速入侵的問題,在我準備發佈後立即刪除。 在1000堆棧限制下,深度遞歸算法在Python中不可用。但有時候,通過解決方案的初步想法是非常好的。由於函數是Python中的第一類,所以我使用返回一個有效的函數和下一個值來玩。然後在循環中調用該過程,直到完成單個調用。我相信這不是新的。 我發現有趣的是,我期望來回傳遞函數的額外開銷,使其比正常遞歸

    1熱度

    1回答

    說我有載體列表記錄位置 ([0 0] [1 0] [1 0] [1 0]) 我希望能在沿途爲您矢量者名單,並記錄每一個獨特的位置。 [0 0] [0 0] + [1 0] = [1 0] [1 0] + [1 0] = [2 0] [2 0] + [1 0] = [3 0] 給出4個獨特的位置。 ([0 0] [1 0] [2 0] [3 0]) 任何想法如何在Clojur

    25熱度

    2回答

    我一直試圖在JavaScript的背景下理解Tail call optimization,並且已經爲factorial()編寫了下面的遞歸和尾遞歸方法。 遞歸: function factorial (n) { if (n < 2) { return 1; } else { return n * factorial(n-1); } } 尾遞歸

    0熱度

    2回答

    我已經實現了遞歸方法來檢查字符串中括號的數目是否有效。這裏是 def balance(chars: List[Char]): Boolean = { @tailrec def isValid(newChars: List[Char], difference: Int): Boolean = { if (newChars.isEmpty) difference ==

    6熱度

    1回答

    我要遍歷下面的樹結構尾遞歸沒有回落的環路: const o = {x:0,c:[{x:1,c:[{x:2,c:[{x:3},{x:4,c:[{x:5}]},{x:6}]},{x:7},{x:8}]},{x:9}]}; 0 /\ 1 9 /| \ 2 7 8 /| \ 3 4 6 | 5 期望的結果:/0/1/2/3

    -6熱度

    1回答

    使用GCC在Windows上編譯。它立即與Exception Code: c00000fd墜毀。 編輯:試着編譯下面的代碼(對於可見輸出),它會導致stackoverflow。 #include<stdio.h> int main(void) { printf("Hello World\n"); return main(); } 輸出 - >gcc trailORoverflow.c

    1熱度

    1回答

    我看到函數附加一個接收塊,看起來並不是在elixir示例代碼中遍佈所有地方的遞歸調用。例如: defmodule A do def loop do receive do :ping -> IO.puts "Received :ping" loop # <- Tail position? :pong -> IO.puts