リーグ戦の試合日程を決める方法

友人から次のようなオーダーがありました。

  • 草野球の試合日程を決めたい。
  • 6チームの総当たりで同じ組み合わせを2回ずつ。全部で30試合。
  • グラウンドは1面のみ。
  • 同一チームは2試合連続はなし。

つぎのように決めたところうまくいきました。チーム数が増えてもOKです。 (さらに…)

Pythonでクイックソート

ウィキペディアにクイックソートのコードの例が載っていますが全く理解できませんでした。
自分で書いてみました。 (さらに…)

Pythonで大津の二値化を試す

画像を白と黒で表すことを二値化と言います。
まずグレーで表して、それを白と黒に分けるのですが、その境目、閾値をうまく指定する必要があります。
グレーだと色は256段階で表されます。
最も単純なのは真ん中の128を閾値とする方法です。しかしこれだと偏りがあるとキレイに見えません。
次に考えられるのは平均です。これだとまあまあキレイに見えます。 (さらに…)

Pythonで凸包を求める方法

凸包というものがあります。
簡単に言うと、散らばった点の外側にある点の集まりです。 (さらに…)

Pythonでバイナリサーチ(二分探索)

Pythonでバイナリサーチを行うサンプルを作ってみました。 (さらに…)

Pythonでマージソート

マージソートをPythonで書いてみました。 (さらに…)

JavaScriptで素数を列挙する

ある問題を解くために素数が必要になったので、JavaScriptで素数を列挙する方法を考えてみました。
最も小さい素数は2で、次は3です。配列にセットします。
そして5,7,9,11と奇数について順に素数であるか確認していきます。
5が「5未満の素数」で割り切れるか確認します。実際は5の2乗根以下の素数について確認すれば十分です。これを超える素数では5を割り切れないからです。したがって「2乗して5以下の素数」で割り切れるか確認します。「2乗して5以下の素数」である2で割り切れないので5は素数です。配列にセットします。
7が「2乗して7以下の素数」で割り切れるか確認します。2で割り切れないので7は素数です。配列にセットします。
9が「2乗して9以下の素数」で割り切れるか確認します。2で割り切れないですが、3で割り切れるので9は素数ではありません。
11が「2乗して11以下の素数」で割り切れるか確認します。2,3で割り切れないので11は素数です。配列にセットします。
これを繰り返します。 (さらに…)

クレジットカード番号をチェックする

クレジットカードの番号には規則があり合致しないとエラーになります。
チェックの仕組みを「ルーンアルゴリズム」と言うそうです。
この手のチェックの仕組みは数列からチェックデジットを計算して先頭か末尾に付けるというパターンが多いと思いますが、この仕組みは数列全体が正しいか否かをチェックするようです。
これをJavaScriptで再現してみました。 (さらに…)

VBAでクイックソート(改良版)

前にVBAでクイックソートをする方法を紹介しましたが、配列の扱いがよく分からず、CSVに変換して行う方法でした。
今回、配列の処理方法が分かったので、コードを書き直してみました。
処理が劇的に速くなりました。バブルソートなど他のソートとは比較になりません。 (さらに…)

JavaScriptで「偏りランダム」を行う方法

プログラムでランダムに値を変えるという場面はよくあります。
JavaScriptならば次のようにします。
血液型("A", "O", "B", "AB")からランダムに一つ取り出すサンプルです。 (さらに…)

古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報