Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.

Nachdem ich den Artikel "Ich habe versucht, das Tribonacci-Sequenzproblem mit Ruby zu lösen (Zeitlimit 10 Minuten)" gelesen hatte, dachte ich, ich wollte ihn rekursiv schreiben. Also Kakiko ... ist eine Lüge, und ich wusste nicht wirklich, was Tribonacci ist, also habe ich es in Eile geschrieben.

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

abschließend

Was ist mit der Tail-Call-Optimierung? Oder wie wäre es mit einem Memo? Oder schreiben Sie in einer Schleife anstatt in erster Linie rekursiv! Schreiben Sie in Haskell oder Elm, weil es eine großartige Gelegenheit ist! , Wenn Sie mit einem Iterator schreiben? Ignoriere eine solche innere Stimme. Weil ich nicht sicher bin, sie in 10 Minuten zu machen!

[PR] ** Lob HP12c **

Ruby-Wiederholungsfunktion für Fibonatch, Tribonatch, Tetranatch!

Recommended Posts

Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
Ich habe versucht, das Paiza-Kampagnenproblem "Herausforderung von Phantomdieb 813" zu lösen.
Ich habe versucht, das Problem des Google Tech Dev Guide zu lösen
Ich habe versucht, das Problem mit der Ruby-Karaoke-Maschine zu lösen (es gibt ein Beispiel für die Antwort).
Ich habe versucht, das Problem mit dem Ruby-Bonusgetränk zu lösen (es gibt ein Beispiel für die Antwort).
Ich habe versucht, die Sitzung in Rails zu organisieren
[Competition Pro] Löse Rucksackprobleme mit Ruby
Ich habe versucht, den CPU-Kern mit Ruby voll auszunutzen
[Ruby] Ich habe versucht, die häufigen Methoden in Paiza zusammenzufassen
[Ruby] Ich habe versucht, die häufigen Methoden mit paiza ② zusammenzufassen
Ich möchte den Wert in Ruby erhalten
[Java] Ich habe versucht, Paizas B-Rang-Problem zu lösen
[Bei Coder] Lösen Sie das ABC183 D-Problem mit Ruby
[Bei Coder] Lösen Sie das ABC182 D-Problem mit Ruby
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich habe DI mit Ruby versucht
Ich habe das FizzBuzz-Problem ausprobiert
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe die topologische Sortierung nicht verstanden, also habe ich sie nachgeschlagen und in BFS implementiert und dann versucht, das AtCoder-Problem zu lösen.
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Daten sortieren Absteigend, aufsteigend / Schienen
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
Ich habe versucht, die Bildvorschau mit Rails / jQuery zu implementieren
Ich habe versucht, Ruby's Float (arg, Ausnahme: true) mit Builtin neu zu implementieren
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Ich habe versucht, einen Numeron zu erstellen, der mit Ruby nicht gut ist
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
Ich habe versucht, mit Web Assembly zu beginnen
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, AOJs binäre Suche zu lösen
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe die AutoValue-Bibliothek mit Intellij ausprobiert
[Ruby] Ich möchte nur das ungerade Zeichen in der Zeichenfolge ausgeben
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
Ich habe versucht, den Zugriff von Lambda → Athena mit AWS X-Ray zu visualisieren
Ich war süchtig nach Unit-Tests mit dem Pufferoperator in RxJava
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Ich habe versucht, ein Beispielprogramm mit dem Problem des Datenbankspezialisten für domänengesteuertes Design zu erstellen
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen