#
# PYTHON • MyCompiler
# https://[Log in to view URL]
# Sequência de Recáman & 
# Gráfico
#
# 2026 Maio Qua, 6
# by
# j
# 

import matplotlib.pyplot as plt
import numpy as np

def graphracaman():

    #
    # Parâmetros
    # 

    max = 200
    
    #
    # Gera a sequência de recáman
    #
    
    r = []
    for n in range(0,max+1):
        if ( n == 0):
            r.append(0)
        else:
            if ( ( ( r[n-1] - n ) > 0 ) and not(r[n-1] - n in r) ):
                r.append(r[n-1] - n)
            else:
                r.append(r[n-1] + n)

    #
    # Gera o gráfico
    #

    x = []
    y = []

    plt.figure(figsize=(6,6))

    teta = np.linspace(0, np.pi, 100) # 0 a 180 graus

    comutador = 1
    
    for j in range(0,max):

        raio = abs((1/2)*(r[j] - r[j+1]))

        if (r[j+1] > r[j]):
            P = r[j]
            s = 1
        else:
            P = r[j+1]
            s = 1

        if (comutador == 1):
            
            x.append(P + s*raio + raio * np.cos(teta))
            y.append(0          + raio * np.sin(teta))

        else:

            x.append(P + s*raio + raio * np.cos(np.pi+teta))
            y.append(0          + raio * np.sin(np.pi+teta))
        
        plt.plot(x[j], y[j])

        comutador = -1 * comutador

    tit = 'Sequência de Recamán | ' + str(max)

    # Mantém a proporção circular
    plt.axis('equal') 
    plt.title(tit)
    plt.grid(False)
    plt.show()
    
graphracaman()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: