Séquence de jongleur

Séquence de jongleur
Essayez-le sur GfG Practice #practiceLinkDiv { display : aucun !important; }

La séquence Jongleur est une série de nombres entiers dont le premier terme commence par un nombre entier positif. un et les termes restants sont générés à partir du terme précédent immédiat en utilisant la relation de récurrence ci-dessous : 
a_{k+1}=begin{Bmatrix} lfloor a_{k}^{1/2} rfloor & pour quad pair quad a_k\ lfloor a_{k}^{3/2} rfloor & pour quad impair quad a_k end{Bmatrix}        
Séquence de jongleur commençant par le numéro 3 : 
3 5 11 36 6 2 1
Séquence de jongleur commençant par le numéro 9 : 
9 27 140 11 36 6 2 1
Étant donné un numéro n nous devons imprimer la séquence du jongleur pour ce nombre comme premier terme de la séquence. 
Exemples : 
 

Input: 9 Output: 9 27 140 11 36 6 2 1 We start with 9 and use above formula to get next terms. Input: 6 Output: 6 2 1 
Recommended Practice Séquence de jongleur Essayez-le ! C++
   // C++ implementation of Juggler Sequence   #include          using     namespace     std  ;   // This function prints the juggler Sequence   void     printJuggler  (  long     long     n  )   {      long     long     a     =     n  ;      // print the first term      cout      < <     a      < <     ' '  ;      // calculate terms until       // last term is not 1      while     (  a     !=     1  )      {      long     long     b     =     0  ;      // Check if previous term       // is even or odd      if     (  a     %     2     ==     0  )      // calculate next term      b     =     floor  (  sqrt  (  a  ));      else      // for odd previous term       // calculate next term      b     =     floor  (  sqrt  (  a  )     *         sqrt  (  a  )     *     sqrt  (  a  ));      cout      < <     b      < <     ' '  ;      a     =     b  ;      }   }   // Driver Code   int     main  ()   {      printJuggler  (  37  );      cout      < <  '  n  '  ;      printJuggler  (  9  );      return     0  ;   }   // This code is contributed by shubhamsingh10   
C
   // C implementation of Juggler Sequence   #include      #include      // This function prints the juggler Sequence   void     printJuggler  (  int     n  )   {      int     a     =     n  ;      // print the first term      printf  (  '%d '       a  );      // calculate terms until last term is not 1      while     (  a     !=     1  )      {      int     b     =     0  ;      // Check if previous term is even or odd      if     (  a  %  2     ==     0  )      // calculate next term      b     =     floor  (  sqrt  (  a  ));      else      // for odd previous term calculate      // next term      b     =     floor  (  sqrt  (  a  )  *  sqrt  (  a  )  *  sqrt  (  a  ));      printf  (  '%d '       b  );      a     =     b  ;      }   }   //driver program to test above function   int     main  ()   {      printJuggler  (  3  );      printf  (  '  n  '  );      printJuggler  (  9  );      return     0  ;   }   
Java
   // Java implementation of Juggler Sequence   import     java.io.*  ;   import     java.math.*  ;   class   GFG     {          // This function prints the juggler Sequence      static     void     printJuggler  (  int     n  )      {      int     a     =     n  ;          // print the first term      System  .  out  .  print  (  a  +  ' '  );          // calculate terms until last term is not 1      while     (  a     !=     1  )      {      int     b     =     0  ;          // Check if previous term is even or odd      if     (  a  %  2     ==     0  )          // calculate next term      b     =     (  int  )  Math  .  floor  (  Math  .  sqrt  (  a  ));          else          // for odd previous term calculate      // next term      b     =  (  int  )     Math  .  floor  (  Math  .  sqrt  (  a  )     *      Math  .  sqrt  (  a  )     *     Math  .  sqrt  (  a  ));          System  .  out  .  print  (     b  +  ' '  );      a     =     b  ;      }      }   // Driver program to test above function   public     static     void     main     (  String  []     args  )     {      printJuggler  (  3  );      System  .  out  .  println  ();      printJuggler  (  9  );      }   }       //This code is contributed by Nikita Tiwari.   
Python3
   import   math   #This function prints the juggler Sequence   def   printJuggler  (  n  )   :   a   =   n   # print the first term   print   (  a    end  =  ' '  )   # calculate terms until last term is not 1   while   (  a   !=   1  )   :   b   =   0   # Check if previous term is even or odd   if   (  a  %  2   ==   0  )   :   # calculate next term   b   =   (  int  )(  math  .  floor  (  math  .  sqrt  (  a  )))   else   :   # for odd previous term calculate   # next term   b   =   (  int  )   (  math  .  floor  (  math  .  sqrt  (  a  )  *  math  .  sqrt  (  a  )  *   math  .  sqrt  (  a  )))   print   (  b    end  =  ' '  )   a   =   b   printJuggler  (  3  )   print  ()   printJuggler  (  9  )   # This code is contributed by Nikita Tiwari.   
C#
   // C# implementation of Juggler Sequence   using     System  ;   class     GFG     {          // This function prints the juggler Sequence      static     void     printJuggler  (  int     n  )      {      int     a     =     n  ;      // print the first term      Console  .  Write  (  a  +  ' '  );      // calculate terms until last term is not 1      while     (  a     !=     1  )      {      int     b     =     0  ;          // Check if previous term is even or odd      if     (  a  %  2     ==     0  )          // calculate next term      b     =     (  int  )  Math  .  Floor  (  Math  .  Sqrt  (  a  ));      else      // for odd previous term calculate      // next term      b     =  (  int  )     Math  .  Floor  (  Math  .  Sqrt  (  a  )     *      Math  .  Sqrt  (  a  )     *     Math  .  Sqrt  (  a  ));      Console  .  Write  (     b  +  ' '  );      a     =     b  ;      }      }   // Driver Code   public     static     void     Main     ()     {      printJuggler  (  3  );      Console  .  WriteLine  ();      printJuggler  (  9  );      }   }   // This code is contributed by Nitin Mittal   
PHP
      // PHP implementation of    // Juggler Sequence   // function prints the   // juggler Sequence   function   printJuggler  (  $n  )   {   $a   =   $n  ;   // print the first term   echo  (  $a   .   ' '  );   // calculate terms until    // last term is not 1   while   (  $a   !=   1  )   {   $b   =   0  ;   // Check if previous   // term is even or odd   if   (  $a   %   2   ==   0  )   // calculate next term   $b   =   floor  (  sqrt  (  $a  ));   else   // for odd previous term   // calculate next term   $b   =   floor  (  sqrt  (  $a  )   *   sqrt  (  $a  )   *   sqrt  (  $a  ));   echo  (  $b   .   ' '  );   $a   =   $b  ;   }   }   // Driver Code   printJuggler  (  3  );   echo  (  '  n  '  );   printJuggler  (  9  );   // This code is contributed by Ajit.   ?>   
JavaScript
    <  script  >   // Javascript implementation of Juggler Sequence      // This function prints the juggler Sequence      function     printJuggler  (  n  )      {      let     a     =     n  ;          // print the first term      document  .  write  (  a  +  ' '  );          // calculate terms until last term is not 1      while     (  a     !=     1  )      {      let     b     =     0  ;          // Check if previous term is even or odd      if     (  a  %  2     ==     0  )          // calculate next term      b     =     Math  .  floor  (  Math  .  sqrt  (  a  ));          else          // for odd previous term calculate      // next term      b     =     Math  .  floor  (  Math  .  sqrt  (  a  )     *      Math  .  sqrt  (  a  )     *     Math  .  sqrt  (  a  ));          document  .  write  (     b  +  ' '  );      a     =     b  ;      }      }   // Driver code to test above methods      printJuggler  (  3  );      document  .  write  (  '  
'
); printJuggler ( 9 ); // This code is contributed by avijitmondal1998. < /script>

Sortir: 
 

3 5 11 36 6 2 1 9 27 140 11 36 6 2 1 

Complexité temporelle : O(nlogn) puisque l'utilisation d'une seule boucle while et la recherche de la racine carrée prennent un temps logarithmique.



Complexité spatiale : O(1) pour les variables constantes

Points importants :  

  • Les termes de la séquence Juggler augmentent d’abord jusqu’à une valeur maximale, puis commencent à diminuer.
  • Le dernier terme de la séquence Jongleur est toujours 1.


Référence:  
https://en.wikipedia.org/wiki/Juggler_sequence  
 


Top Articles

Catégorie

Des Articles Intéressants