J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby (temps limite 10 minutes)

introduction

C'est une expérience que l'écrivain peu instruit s'est retrouvé dans une situation où le problème de la séquence tribonatch devait être résolu en 10 minutes et résolu avec du rubis dans les 10 minutes de l'état où il avait oublié le mot tribonatch (état de perte de mémoire). Je vais. Pour ceux qui ont confiance en mathématiques et ceux qui ne le sont pas, pourquoi ne pas l'essayer en moins de 10 minutes?

problème

Question 1 1,3,7,11,21,39... Quel est le 50e numéro?

Maintenant, nous devons résoudre le problème ...

... (; ゚ д ゚) Gokuri

J'ai perdu connaissance pendant environ 10 secondes, mais je dois comprendre la situation actuelle pour le moment! !! J'ai retrouvé mon esprit.

À propos de la séquence de nombres Tribonacci

La séquence de nombres Tribonacci est une séquence dans laquelle le numéro du terme est la somme des nombres des trois termes qui le précèdent ... Il semble que vous étudierez à l'examen d'entrée au collège, mais qu'avez-vous mangé hier? Ma perte de mémoire, qui n'a qu'un niveau de mémoire, n'a pas guéri (... maintenant 30 ans)

Résultats de recherche ...

Quel est le nombre de tribonatchs? ... Omis a[0]=a[1]=0 a[2]=1 a[n]=a[n-1]+a[n-2]+a[n-3] Séquence numérique définie comme Trouvez le terme général pour cette séquence de nombres. 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ⁿ ...

~~ Non, je ne peux pas le comprendre en 10 minutes! !! ~~ ~~ J'ai renoncé à comprendre ~~ et je l'ai exprimé en rubis sur la base de mon interprétation.

Interprétation de l'auteur

1er + 2e + 3e = 4e 2e + 3e + 4e = 5e répétition Type de méthode Tokoten ← complètement différent

Le premier est exprimé par a, le second est exprimé par b, le troisième est exprimé par c et le total du quatrième est exprimé par d. Après avoir ajouté, pensez que b devient a, c devient b et d devient c, remplacez chacun et répétez 47 fois! !!

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

Le dernier c est le 47e nombre! !!

Ça y est ...! !!
Exprimez cette idée un peu plus attentivement ...

tribonacci.rb


puts "Veuillez saisir le numéro souhaité"
puts "Premier numéro"
a = gets.to_i
puts "Deuxième numéro"
b = gets.to_i
puts "Troisième numéro"
c = gets.to_i
puts "Quel numéro voulez-vous?"
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}Le deuxième chiffre est#{c}est"

Vous avez maintenant le 50e numéro 17079382868243! !! Je n'ai pas mesuré l'heure exacte, mais j'ai réussi à l'implémenter en 10 minutes.

en conclusion

Je pense qu'il y a une meilleure méthode de calcul, mais pour moi avec un faible niveau d'éducation, c'était la limite à exprimer en 10 minutes. Comment était tout le monde? Vous êtes assez impatient dans les 10 minutes, non? Il y avait du code écrit en environ 5 lignes sur Wikipédia, donc ça devrait être plus facile à appeler, mais j'ai été tempéré par la limite de temps et ça s'est terminé comme ça ... J'étais parfaitement conscient de ce problème: pour devenir ingénieur, je devais étudier non seulement le code mais aussi les mathématiques.

Recommended Posts

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équence Tribonacci en Ruby, avec récurrence.
J'ai essayé un problème de calendrier avec Ruby
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é 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 création de carte de bingo Ruby (il y a un exemple de réponse)
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 ②
J'ai essayé d'organiser la session en Rails
Je veux obtenir la valeur en Ruby
[Java] J'ai essayé de résoudre le problème de rang B de Paiza
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
J'ai essayé le problème FizzBuzz
J'ai brièvement résumé la grammaire de base de Ruby
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'expliquer la méthode
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é d'écrire du code comme une déclaration de type en Ruby
[Rubiy] J'ai essayé de résumer le traitement de la boucle ce soir [fois, pause ...]
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
[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 résoudre les 10 dernières questions qui devraient être résolues après m'être inscrit auprès d'AtCoder en Java
J'ai essayé de résumer les méthodes utilisées
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
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
Ruby: J'ai essayé de savoir où Nokogiri va voir l'encodage lui-même
J'ai essayé d'implémenter des relations polymorphes à Nogizaka.
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
[Competition Pro] Résolvez les problèmes de sac à dos avec Ruby
[Notions de base sur Ruby] J'ai essayé d'apprendre des modules (Chapitre 1)
J'ai essayé de toucher Docker pour la première fois
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé de configurer tomcat pour exécuter le servlet.
Comment résoudre les problèmes d'expression en Java
J'ai essayé de développer une application en 2 langues
J'ai essayé de créer une compétence Alexa avec Java
Comment créer la blockchain la plus simple de Ruby
[Java] Essayez de résoudre le problème de Fizz Buzz