プログラミング
グラフ理論の文脈におけるグラフとは、頂点と辺によって構成されるデータ構造です。今回はJava上でグラフ構造を表現し、グラフ上のアルゴリズムまで提供するライブラリ「JGraphT」の使い方を紹介します。
C言語で乱数を扱う場合rand関数を使う方が多いかと思います。しかしrandは問題も多く、外部ライブラリを用いるべきケースも多いです。今回はメルセンヌ・ツイスタをC言語で用いる方法を紹介します。
C言語やC++で範囲を指定した乱数を生成する方法を紹介します。C++ではSTLを用いた手軽な方法も紹介。よくある剰余を取る方法だけでなく、得られる乱数の偏り方にも着目、また厳密に偏りの無い乱数を得る方法も紹介します。
C++で配列やvectorをシャッフル(ランダムに並び替え)する場合、vectorであればSTLを用いて非常に簡単に実現できます。またC言語の場合は以下のような関数により高速かつ完全に配列をシャッフルすることができます。
前回の記事(C++とSwiftの速度比較 〜ソートアルゴリズム編〜)ではC++とSwiftのソートアルゴリズムの実行速度を比較しました。今回はJavaも含めて比較するぞ!ということで取り掛かりました。 しかしいろいろあって、今回はC++とJavaのみでソートアルゴリズ…
前回の記事(C++とJavaとSwiftの速度比較 〜配列編〜)ではC++とJavaとSwiftでの配列アクセス速度の違いを見てみました。今回は少し複雑な動作させてみようということで、C++とSwiftでソートアルゴリズムの実行速度を比較してみます。 (2017.09.02 追記) Jav…
SwiftはAppleが2014年に発表した非常に新しいプログラミング言語です。 コンパイルすることで高速な実行が可能でありながら、スクリプト言語のようなモダンな文法を多く取り入れており、さらにMacだけでなくLinuxでもコンパイル可能。「C++やJavaから乗り換…
C++にはSTLと呼ばれるライブラリが付属しており便利なデータ構造が利用できる。その中のpriority_queue(優先順位付きキュー)で自分で作成したクラスを扱うには、そのオブジェクト同士の比較の際の基準(大小関係)を決めてあげる必要がある。