Нитки рекурсии биноминальные

Я хочу вычислить 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();
                }


        }



    }

0 ответов

Другие вопросы по тегам