エイプリルフールまであと1ヶ月ですが、今年は去年ほど大規模なことはやりません(笑) あれ以上のことなんて無理でしょうw
シンプルに一発ネタでいきます。
アニメ見たり音楽聴きながらだらだらプログラム作ってます。もう春休みも残り半分か(笑)
最近ロクな日記を書いてなかったので、たまにはまとも(?)なことを書いてみます(^^;
この場合の階乗テーブルとは、例えば3!の場合
[1 2 3] [1 3 2] [2 1 3] [2 3 1] [3 1 2] [3 2 1] |
のように、n!通りの組み合わせのテーブルのことです。
ひょっとしたらちゃんとした名称があるのかもしれませんが、とりあえずここでは「階乗テーブル」と命名しておきます。
で、とあるデータ解析でこういうテーブルを作って総当り的に調べることがあったので作ってみました。
#include <vector> using std::vector; // n!分のテーブルを生成する(汗 void MakeFactorialTable(int n, vector< vector< int > >& vctTable) { vctTable.clear(); if(n==1){ vector< int > v; v.push_back(n); vctTable.push_back(v); } else if(n>1){ // (n-1)!の階乗テーブルを作成する vector< vector< int > > vct; MakeFactorialTable(n-1, vct); // (n-1)!の階乗テーブルの末尾に自分自身(n)を追加 int max = vct.size(); for(int i = 0; i < max; i++){ vector< int > v = vct[i]; v.push_back(n); vctTable.push_back(v); } const vector< vector< int > > vctOriginal = vctTable; // オリジナルデータの全要素に1〜(n-1)を加算して、それらをvctTableに追加する max = vctOriginal.size(); for(int i = 1; i < n; i++){ for(int j = 0; j < max; j++){ vector< int > v = vctOriginal[j]; int max2 = v.size(); for(int k = 0; k < max2; k++){ // v[k]--; // v[k] = (v[k] + i) % n; // v[k]++; v[k] = ((v[k] - 1 + i) % n) + 1; } vctTable.push_back(v); } } } } |
アルゴリズム自体は
という割とシンプルなもの。
ぶっちゃげSTLの使い方よく分かってないのでもっと最適化かかると思います(ぉ
ちなみに10!(=3628800)通りの階乗テーブルを生成するのに1分くらいかかりました(汗
mixiの方にも書きましたが、コンテストパークが「コンテストパークWeb」として復活。蝶期待age。
数日前からずっと鯖落ちのようなので、多分このまま移転先になりそうな予感。ずっと前も鯖の調子が悪くて移転したような(^^;
> 階乗オーダ…ガクガクブルブル(;゚Д゚) by か
階乗は雪だるま式に値が大きくなるのでまるで高利g(ry
> えぇと,順列ってことでいいのかなぁ.だとしたらSTLにこんなんがありますね(http://www.prefield.com/wiki/index.php?next_permutation),やはり先人(ry by Richard
掲示板でトリノさんが2つ書いてたやつの後者の方ですね。やはり先人は偉大だorz
別名:射命丸文の写真館(笑)
ベストショットファイルのPNG変換について神主にメールで確認してみましたが、2週間経っても返事が無かったので黙認されたと判断。
木村圭さん主催の花映塚北九州オフに参加してきました。関係者の方々お疲れ様です。久しぶりに昔のサークルの先輩にも会えました(^^;
やったこと
微妙に東方に関係ないことも混じってますがw
他のところでもさんざんネタにされているやつですが一応
「インスパイヤ」って便利な言葉ですねw
(個人的には1個上のが中国、2個上のが琥珀さんに見えて仕方ないですが)
今のところ投稿予定作品は2つ。
本家のキーコンフィグがあまりにも使いにくかったので最近の同人ゲーム風にアレンジw
ツクールXPのRTPに特化したインストーラ。左がインストーラ本体で、右がインストーラの設定を編集するエディタ。
内部でバージョン情報チェックをしているので古いバージョンを間違えてインストールしない安心設計。(はちくまの修正パッチインストーラ(ほっしーさん作)みたいなもの)
エディタではインストールしているRTPの一覧も確認できます。
この2つで製作に1週間かかっていない件(笑)
※キーコンフィグツールが2日でインストーラ(本体+エディタ)が3日。
日記内でインストーラ本体のプログラムアイコンをひっそりと募集してみます。
↑よりも絵心のあるアイコンを描ける人がいたらメールで送りつけてください(画像サイズは32×32)。お礼とかは特に無いですが、マニュアルの「スペシャルサンクス」に名前が載ります。
コンパクの締め切りが5月15日なのでアイコンの募集もそのくらいまで。もしアイコンの応募が無ければ前述のセンスの無いアイコンが出回ります(ぉ
2006/04/08追記)アイコン描いてくれる人が見つかったので募集を中止します。
現状で作っているプログラムがあるので僕は参加しません。
ていうか僕はゲームプログラマーではないし(ぇー
よしお前ら、最後の追い込みがんばれ(笑)