2018-01-01から1年間の記事一覧

フィボナッチ数列の第k項をO(log n)で計算しようとしたけど難しかった話

目次 フィボナッチ数列 ビネの公式 計算誤差について 計算の工夫 最終的な計算時間 サンプルコード 1. フィボナッチ数列 フィボナッチ数列は、イタリアの数学者レオナルド・フィボナッチの名前をとって名付けられた数列です。 数列の決まりは、「ある項は、1…

なぜ数を0で割る「ゼロ除算」はダメなのか

目次 この記事の目的 1を0以外で割るといくつになるのか 結論 1/0 が無限になる時がある 1. この記事の目的 プログラミングをしていると、やってはいけないと言われる「ゼロ除算」ってありますよね。 実際にゼロ除算を行うと、例外が吐かれたり、無限などの…

フィボナッチ数列は再帰で実装するな

目次 この記事の目的 フィボナッチ数列 再帰で実装 ループで実装 計算時間の違い まとめ 1. この記事の目的 プログラミング経験者って、なんだかんだでフィボナッチ数列を実装したことがありますよね。 みなさんはどのように実装しましたか?覚えてらっしゃ…

【Docker】同じソースコードを複数バージョンのJDKで実行する方法

目次 この記事の目的 ソースコードを準備する Dockerコンテナ上でコンパイルと実行 複数バージョンのJDKで実行 まとめ 1. この記事の目的 同じソースコードを複数バージョンのJDKで実行する方法を紹介します。 これができると、JDKごとにパフォーマンス測定…

【Java】文字列を10万回連結してみた【String vs StringBuilder】

目次 この記事の目的 文字列連結の2種類の仕方 パフォーマンスを比較する 10万回ではなく1000回であれば 結論 1. この記事の目的 Javaで文字列を連結する際は、StringとStringBuilderのどちらを使えばいいのかを考えたいと思います。 String と StringBuild…

【Java】なぜ文字列リテラルは演算子で比較できる時があるのか

目次 この記事の目的 String Constant Pool String#intern String#intern の実装を追う まとめ 1. この記事の目的 Javaで文字列同士の比較(等しいか判定)したい時は、 equals メソッドを使いましょう。 とは初心者に最初に教えるべき1つの教訓になってい…