Ich habe folgendes Programm, das den Binomialkoeffizienten von zwei ganzen Zahlen berechnet. Aber ich möchte das Programm ändern, dass es berechnet und nur die notwendigen Koeffizienten für die Lösung speichert. Das Problem ist, dass ich im Moment wirklich keine Ahnung habe, wie es geht. The CodeJava: Binomialkoeffizienten berechnen
public static long binomialIteration(int n, int k)
{
if(k<0 || n<k)
{
return 0;
}
long[][] h= new long[n+1][n+1];
for(int i=0; i<=n; i++)
{
h[i][0]=h[i][i]=1;
}
for(int i=1;i<=n;i++)
{
for(int j=0; j<=i; j++)
{
h[i][j] = (j==0 ? 0: h[i-1][j-1]) + (i == j ? 0 : h[i-1][j]);
}
}
return h[n][k];
}
Code zur Frage hinzufügen – Hosseini
Warum setzen Sie hier einen Screenshot ein. Fügen Sie einfach Ihren Code ein ... –
Wenn Sie einen guten Hinweis darauf haben möchten, wie Sie einen effizienten Weg finden, Ihr Problem zu lösen, sollten Sie sich mit dynamischer Programmierung beschäftigen (es ist ein Paradigma, das Ihnen sagt, dass Sie Werte, die Sie bereits berechnet haben, speichern) um zu vermeiden, sie erneut zu berechnen), überprüfen Sie diese Verbindungen: [Pseudocode] (http://www.csl.mtu.edu/cs4321/www/Lectures/Lecture%2015%20-%20Dynamic%20Programming%20Binomial%20Coefficients .htm) oder [ein anderer Weg (Implementierung)] (http://stackoverflow.com/questions/28919286/binomial-coefficient-algorithm-using-dynamic-programming-and-a-single-dimensiona) – Simonlbc