J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.

Après avoir vu l'article "J'ai essayé de résoudre le problème de séquence tribonacci avec Ruby (délai de 10 minutes)", j'ai pensé que je voulais l'écrire récursivement. Donc Kakiko ... est un mensonge, et je ne savais pas vraiment ce qu'était Tribonacci, alors je l'ai écrit à la hâte.

code

# Tribonacci
def tribonacci n
  if n == 1
    return 1
  elsif n == 2
    return 1
  elsif n == 3
    return 2
  else
    return tribonacci(n - 3) + tribonacci(n - 2) + tribonacci(n - 1)
  end
end

p (1..10).map{|n| tribonacci n } # => [1, 1, 2, 4, 7, 13, 24, 44, 81, 149]

# Unit Test
require 'test/unit'

class TC_Foo < Test::Unit::TestCase
  def test_one
    assert_equal tribonacci(1), 1
  end

  def test_two
    assert_equal tribonacci(2), 1
  end

  def test_three
    assert_equal tribonacci(3), 2
  end

  def test_ten
    assert_equal tribonacci(10), 149
  end
end

en conclusion

Qu'en est-il de l'optimisation des appels de queue? Ou que diriez-vous de faire un mémo? Ou, écrivez dans une boucle au lieu de récursif en premier lieu! Écrivez en Haskell ou Elm car c'est une belle opportunité! , Souhaitez-vous l'écrire avec un itérateur? Ignorez une telle voix intérieure. Parce que je ne suis pas sûr de les faire en 10 minutes!

[PR] ** Praise HP12c **

Fonction de répétition Ruby pour Fibonatch, Tribonatch, Tetranatch!

Recommended Posts

J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby (temps limite 10 minutes)
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
J'ai essayé de résoudre le problème de la campagne paiza "Challenge from Phantom Thief 813"
J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé de résoudre le problème de la machine à karaoké Ruby (il y a un exemple de réponse)
J'ai essayé de résoudre le problème de la boisson bonus Ruby (il y a un exemple de réponse)
J'ai essayé d'organiser la session en Rails
[Competition Pro] Résolvez les problèmes de sac à dos avec Ruby
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
[Ruby] J'ai essayé de résumer les méthodes fréquentes dans paiza
[Ruby] J'ai essayé de résumer les méthodes fréquentes avec paiza ②
Je veux obtenir la valeur en Ruby
[Java] J'ai essayé de résoudre le problème de rang B de Paiza
[At Coder] Résolvez le problème ABC183 D avec Ruby
[At Coder] Résolvez le problème ABC182 D avec Ruby
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
J'ai essayé DI avec Ruby
J'ai essayé le problème FizzBuzz
J'ai brièvement résumé la grammaire de base de Ruby
J'ai essayé d'interagir avec Java
J'ai essayé d'expliquer la méthode
Je ne comprenais pas le tri topologique, alors je l'ai recherché et mis en œuvre dans BFS, puis j'ai essayé de résoudre le problème d'AtCoder.
J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie
Tri des données Décroissant, croissant / Rails
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
[Rubiy] J'ai essayé de résumer le traitement de la boucle ce soir [fois, pause ...]
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
J'ai essayé de réimplémenter Ruby's Float (arg, exception: true) avec builtin
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
[Java] Je veux effectuer distinctement avec la clé dans l'objet
J'ai essayé de faire un Numeron qui n'est pas bon avec Ruby
Je veux changer la valeur de l'attribut dans Selenium of Ruby
J'ai essayé de démarrer avec Web Assembly
J'ai essayé le nouveau yuan à Java
J'ai essayé de résoudre la recherche binaire d'AOJ
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
J'ai essayé la bibliothèque AutoValue avec Intellij
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
J'étais accro aux tests unitaires avec l'opérateur de tampon dans RxJava
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
J'ai essayé de créer un exemple de programme en utilisant le problème du spécialiste des bases de données dans la conception pilotée par domaine
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker