Skip to Content
Pythonではじめるバイオインフォマティクス ―可読性・拡張性・再現性のあるコードを書くために
book

Pythonではじめるバイオインフォマティクス ―可読性・拡張性・再現性のあるコードを書くために

by Ken Youens-Clark, 異業種データサイエンス研究会
June 2023
Intermediate to advanced
460 pages
6h 20m
Japanese
O'Reilly Japan, Inc.
Content preview from Pythonではじめるバイオインフォマティクス ―可読性・拡張性・再現性のあるコードを書くために

4章

フィボナッチ数列の作成:アルゴリズムのコーディング、テスト、およびベンチマーク

 フィボナッチ数列を実装することは、コードを書けるようになる旅路のもう1つのステップです。Rosalind Fibonacciの記述(https://oreil.ly/7vkRw)には、この数列の起源はウサギの繁殖に関する数学的シミュレーションであり、いくつかの重要な(そして非現実的な)仮定に依存していることが記されています。

  • 最初の1ヶ月は、生まれたばかりのペアのウサギから始まる。
  • ウサギは1ヶ月後に繁殖することができる。
  • 毎月、生殖年齢に達したウサギは、別の生殖年齢に達したウサギと交尾をする。
  • 2匹のウサギが交尾してからちょうど1ヶ月後に、親と同じ数の子ウサギのペアを産む。
  • ウサギは不死で、交尾をやめることはない。

 図4-1に示されているように、数列は常に0と1から始まり、リストの中の直前の2つの値を加えることによって、後続の数字を無限に生成することができます。

図4-1 フィボナッチ数列の最初の8つの数――最初の0と1の後、前の2つの数を足すことで後続の数が作られる

図4-1 フィボナッチ数列の最初の8つの数――最初の0と1の後、前の2つの数を足すことで後続の数が作られる

 解法をインターネットで検索すると、数列を生成する方法が何十種類も出てきます。ここでは、かなり異なる3つのアプローチに注目したいと思います。最初の解法は、アルゴリズムがすべてのステップを厳密に定義する命令型アプローチを使用しています。次にジェネレータ関数を使った方法、そして最後に再帰的な方法に焦点を当てます。再帰は面白いのですが、より多くの数列を生成しようとすると劇的に遅くなります。しかし、パフォーマンスの問題はキャッシュを使って解決できることがわかりました。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

初めてのTypeScript ―型安全なJavaScriptでWeb開発を加速する

初めてのTypeScript ―型安全なJavaScriptでWeb開発を加速する

Josh Goldberg, 今村 謙士, 原 隆文
推薦システム実践入門 ―仕事で使える導入ガイド

推薦システム実践入門 ―仕事で使える導入ガイド

風間 正弘, 飯塚 洸二郎, 松村 優也

Publisher Resources

ISBN: 9784814400379Other