📜  斯特恩-布罗科序列

📅  最后修改于: 2021-05-04 12:49:34             🧑  作者: Mango

Stern Brocot序列与Fibonacci序列相似,但在Fibonacci序列产生方式上有所不同。
Stern Brocot序列的生成:

这是打印Stern Brocot序列的简单程序。

C++
// CPP program to print Brocot Sequence
#include 
using namespace std;
  
void SternSequenceFunc(vector& BrocotSequence, int n)
{
    // loop to create sequence
    for (int i = 1; BrocotSequence.size() < n; i++)
    {
        int considered_element = BrocotSequence[i];
        int precedent = BrocotSequence[i - 1];
  
        // adding sum of considered element and it's precedent
        BrocotSequence.push_back(considered_element + precedent);
          
        // adding next considered element
        BrocotSequence.push_back(considered_element);
    }
  
    // printing sequence..
    for (int i = 0; i < 15; ++i)
        cout << BrocotSequence[i] << " ";
}
  
int main()
{
    int n = 15;
    vector BrocotSequence;
      
    // adding first two element
    // in the sequence
    BrocotSequence.push_back(1);
    BrocotSequence.push_back(1);
      
    SternSequenceFunc(BrocotSequence, n);
  
    return 0;
}


Java
// Java program to print 
// Brocot Sequence
import java.io.*;
import java.util.*;
  
class GFG {
      
static void SternSequenceFunc(Vector
                         BrocotSequence, int n)
{
    // loop to create sequence
    for (int i = 1; BrocotSequence.size() < n; i++)
    {
        int considered_element = BrocotSequence.get(i);
        int precedent = BrocotSequence.get(i-1);
  
        // adding sum of considered element and it's precedent
        BrocotSequence.add(considered_element + precedent);
          
        // adding next considered element
        BrocotSequence.add(considered_element);
    }
  
    // printing sequence..
    for (int i = 0; i < 15; ++i)
        System.out.print(BrocotSequence.get(i) + " ");
}
    // Driver code
    public static void main (String[] args) {
          
        int n = 15;
        Vector BrocotSequence = new Vector();
          
        // adding first two element
        // in the sequence
        BrocotSequence.add(1);
        BrocotSequence.add(1);
          
        SternSequenceFunc(BrocotSequence, n);
          
    }
}
  
// This code is contributed by Gitanjali.


Python3
# Python program to print 
# Brocot Sequence
import math
   
def SternSequenceFunc(BrocotSequence, n):
      
    # loop to create sequence
    for i in range(1,  n):
          
        considered_element = BrocotSequence[i]
        precedent = BrocotSequence[i-1]
   
        # adding sum of considered
        # element and it's precedent
        BrocotSequence.append(considered_element + precedent)
           
        # adding next considered element
        BrocotSequence.append(considered_element)
      
   
    # printing sequence..
    for i in range(0, 15):
        print(BrocotSequence[i] , end=" ")
  
# Driver code
n = 15
BrocotSequence = []
  
# adding first two element
# in the sequence
BrocotSequence.append(1)
BrocotSequence.append(1)
           
SternSequenceFunc(BrocotSequence, n)
  
# This code is contributed by Gitanjali.


C#
// C# program to print 
// Brocot Sequence
using System;
using System.Collections.Generic;
  
class GFG 
{
static void SternSequenceFunc(List
                 BrocotSequence, int n)
{
    // loop to create sequence
    for (int i = 1; 
             BrocotSequence.Count < n; i++)
    {
        int considered_element = 
                       BrocotSequence[i];
        int precedent = 
                   BrocotSequence[i - 1];
  
        // adding sum of considered
        // element and it's precedent
        BrocotSequence.Add(considered_element + 
                                    precedent);
          
        // adding next 
        // considered element
        BrocotSequence.Add(
                       considered_element);
    }
  
    // printing sequence..
    for (int i = 0; i < 15; ++i)
        Console.Write(
                BrocotSequence[i] + " ");
}
// Driver code
static void Main () 
{
      
    int n = 15;
    List BrocotSequence = 
                    new List();
      
    // adding first two element
    // in the sequence
    BrocotSequence.Add(1);
    BrocotSequence.Add(1);
      
    SternSequenceFunc(BrocotSequence, n);
}
}
  
// This code is contributed by 
// Manish Shaw(manishshaw1)


PHP


输出:

1 1 2 1 3 2 3 1 4 3 5 2 5 3 4

参考 :
Github