Ich weiß, wie die katalanische Zahl in Java zu berechnen, was ziemlich geradlinig ist:Katalanisch Anzahl rekursiven in Scala
int catalan(int n) {
int res = 0;
// Base case
if (n <= 1) {
return 1;
}
for (int i = 0; i < n; i++) {
res += catalan(i) * catalan(n - i - 1);
}
return res;
}
Aber ich kann nicht vorstellen, wie dies in Scala zu tun, weil ich total bin neu dazu. Ist es möglich, dies ohne die Verwendung von Var zu tun?
habe ich versucht, die folgenden, aber es funktioniert nicht:
object Catalan {
def catalan: Int => Int = n => {
val res = 0
val i = 0
if (n <= 1) 1
else for (i <- 0 to n-1) res += catalan(i) * catalan(n - i - 1)
}
}
Vielen Dank im Voraus :)
+1 Eine generische Art und Weise Funktionen wie dies memoize finden Sie unter: //github.com/pathikrit/scalgos/blob/master/src/main/scala/com/github/pathikrit/scalgos/Memo.scala Auch andere Identitäten für die katalanischen Zahlen könnten verwendet werden, siehe https: // en.wikipedia.org/wiki/Catalan_number. – uberwach
Komisch, wie dieser Code direkt wieder mit stackoverflow zusammenhängt ;-) – thoredge
In der Netzgrafik sollte stackoverflow und github stark miteinander verbunden sein :-) – uberwach