Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).

Einführung

Es ist eine Erfahrung, dass der schlecht ausgebildete Schriftsteller in eine Situation geriet, in der das Problem der Tribonatch-Sequenz innerhalb von 10 Minuten gelöst und innerhalb von 10 Minuten mit Ruby gelöst werden musste, nachdem er das Wort Tribonatch vergessen hatte (Gedächtnisverlustzustand). Ich werde. Für diejenigen, die sich in Mathematik sicher sind und diejenigen, die es nicht sind, warum nicht in weniger als 10 Minuten versuchen?

Problem

Frage 1 1,3,7,11,21,39... Was ist die 50. Nummer?

Jetzt müssen wir das Problem lösen ...

... (; ゚ д ゚) Gokuri

Ich habe ungefähr 10 Sekunden lang das Bewusstsein verloren, aber ich muss die aktuelle Situation vorerst verstehen! !! Ich habe meinen Geist wiedererlangt.

Über die Tribonacci-Zahlenfolge

Die Tribonacci-Zahlenfolge ist eine Folge, bei der die Zahl des Begriffs die Summe der Zahlen der drei vor ihm stehenden Begriffe ist ... Es scheint, dass Sie bei der Aufnahmeprüfung für die Junior High School studieren werden, aber was haben Sie gestern gegessen? Mein Gedächtnisverlust, der nur ein Gedächtnisniveau hat, heilte nicht (... jetzt 30 Jahre alt)

Suchergebnisse ...

Wie viele Tribonatches gibt es? ... weggelassen a[0]=a[1]=0 a[2]=1 a[n]=a[n-1]+a[n-2]+a[n-3] Nummernfolge definiert als Suchen Sie den allgemeinen Begriff für diese Zahlenfolge. f(z)=Σ[n=0→∞]a[n]zⁿ =a[0]+a[1]z+Σ[n=2→∞]a[n]zⁿ =Σ[n=2→∞]a[n]zⁿ =a[2]z²+Σ[n=3→∞]a[n]zⁿ =z²+Σ[n=3→∞]{a[n-1]+a[n-2]+a[n-3]}zⁿ =z²+Σ[n=3→∞]{a[n-1]}zⁿ+Σ[n=3→∞]{a[n-2]}zⁿ+Σ[n=3→∞]{a[n-3]}zⁿ =z²+zΣ[n=3→∞]{a[n-1]}z^(n-1)+z²Σ[n=3→∞]{a[n-2]}z^(n-2)+z³Σ[n=3→∞]{a[n-3]}z^(n-3) = z² + zΣ [n = 2 → ∞] a [n] zⁿ + z²Σ [n = 1 → ∞] a [n] zⁿ + z³Σ [n = 0 → ∞] a [n] zⁿ ...

~~ Nein, ich kann es nicht in 10 Minuten verstehen! !! ~~ ~~ Ich gab das Verständnis auf ~~ und drückte es aufgrund meiner Interpretation in Rubin aus.

Interpretation des Autors

          1. = 4 ..
          1. = 5. Wiederholung Tokoten-Methodentyp ← völlig anders

Das erste wird als a ausgedrückt, das zweite wird als b ausgedrückt, das dritte wird als c ausgedrückt und die Summe des vierten wird als d ausgedrückt. Denken Sie nach dem Hinzufügen, dass b a wird, c b wird und d c wird, ersetzen Sie jedes und wiederholen Sie es 47 Mal! !!

tribonacci.rb


a = 1
b = 3
c = 7
n = 0
while n < 47
  d = a + b + c
  a = b
  b = c
  c = d
  n += 1
end

puts c

Das letzte c ist die 47. Zahl! !!

Das ist es! !!
Drücken Sie diese Idee etwas sorgfältiger aus ...

tribonacci.rb


puts "Bitte geben Sie die gewünschte Nummer ein"
puts "Erste Nummer"
a = gets.to_i
puts "Zweite Nummer"
b = gets.to_i
puts "Dritte Nummer"
c = gets.to_i
puts "Welche Nummer willst du?"
t = gets.to_i

n = 0
while n < (t - 3)
  d = a + b + c
  a = b
  b = c
  c = d
  n += 1
end

puts "#{t}Die zweite Nummer ist#{c}ist"

Jetzt haben Sie die 50. Nummer 17079382868243! !! Ich habe die genaue Zeit nicht gemessen, aber ich habe es geschafft, sie innerhalb von 10 Minuten zu implementieren.

abschließend

Ich denke, es gibt eine bessere Berechnungsmethode, aber für mich mit geringer Bildung war dies die Grenze, die innerhalb von 10 Minuten ausgedrückt werden musste. Wie war jeder? Du bist innerhalb von 10 Minuten ziemlich ungeduldig, oder? Es gab einen Code, der in ungefähr 5 Zeilen auf Wikipedia geschrieben war, daher sollte es einfacher sein, ihn anzurufen, aber ich war durch das Zeitlimit gemildert und es endete so ... Um Ingenieur zu werden, wurde mir klar, dass ich nicht nur Code, sondern auch Mathematik studieren musste.

Recommended Posts

Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Ich habe ein Kalenderproblem mit Ruby versucht
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, 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 bei der Erstellung von Ruby-Bingokarten zu lösen (es gibt ein Beispiel für die Antwort).
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 habe versucht, die Sitzung in Rails zu organisieren
Ich möchte den Wert in Ruby erhalten
[Java] Ich habe versucht, Paizas B-Rang-Problem zu lösen
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich habe das FizzBuzz-Problem ausprobiert
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
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, die Methode zu erklären
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Daten sortieren Absteigend, aufsteigend / Schienen
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben
[Rubiy] Heute Abend habe ich versucht, die Schleifenverarbeitung zusammenzufassen [Zeiten, Pause ...]
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
[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, die letzten 10 Fragen zu lösen, die nach der Registrierung bei AtCoder in Java gelöst werden sollten
Ich habe versucht, die verwendeten Methoden zusammenzufassen
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
Ich habe versucht, ein Beispielprogramm mit dem Problem des Datenbankspezialisten für domänengesteuertes Design zu erstellen
Ruby: Ich habe versucht herauszufinden, wohin Nokogiri geht, um die Kodierung selbst zu sehen
Ich habe versucht, polymorph in Nogizaka zu implementieren.
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
[Competition Pro] Löse Rucksackprobleme mit Ruby
[Ruby-Grundlagen] Ich habe versucht, Module zu lernen (Kapitel 1)
Ich habe zum ersten Mal versucht, Docker zu berühren
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.
So lösen Sie Ausdrucksprobleme in Java
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
So erstellen Sie die einfachste Blockchain in Ruby
[Java] Versuchen Sie, das Fizz Buzz-Problem zu lösen