Нитки рекурсии биноминальные
Я хочу вычислить N над K (биноминальный коэффициент) в потоке, который открывает другой поток и вычисляет 1 строку вычисления N над K.
Таким образом, каждый поток открывает другой поток, пока N над K не будет полностью завершен.
Пробовал сейчас несколько раз с циклами, но, похоже, не работает вообще.
Есть идеи?
Это должен быть 1 поток, который запускает другой и т. Д. (Так, чтобы каждый был внутри предыдущего), пока он не закончил.
package Uebung3;
public class Uebung3neu {
static long n =22;
static long q = 3;
public static void main(String[] args) {
RekParNeu x= new RekParNeu(n, q);
x.run();
System.out.println("Fakultät von "+ n+" über " + q+ " = "+x.binom(n, q));
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
package Uebung3;
import java.io.*;
import java.util.concurrent.RecursiveTask;
public class RekParNeu implements Runnable {
public RekParNeu(long n, long q){
run();
}
public synchronized static long binom(long n, long q)
{
if (q==n || q==0)
return 1;
else return binom(n-1,q-1) + binom(n-1, q);
}
public synchronized void run() {
while (Uebung3neu.n!=0&&Uebung3neu.q!=0){
Uebung3neu.n--;
Uebung3neu.q--;
System.out.println("lalalalla");
RekParNeu a= new RekParNeu(Uebung3neu.n,Uebung3neu.q);
a.binom(Uebung3neu.n, Uebung3neu.q);
}
try {
java.lang.Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}