学食のラーメンは
不味い。
なんで、あんなに、不味いのか。。。
それはそうと、昨日のソース
見苦しいところもありますが、ご勘弁を
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
class Symbol {
public:
double p;
int len;
int idx;
vector<int> f;
Symbol() { p=0.0; len=0; idx = -1; }
bool operator<(const Symbol& obj) const { return p > obj.p; }
};
double p[] = {0.8, 0.2};
const int NUM = 20;
vector<Symbol> t;
void init()
{
Symbol tmp;
for (int i=0;i < sizeof(p)/sizeof(double);i++) {
tmp.p = p[i];
tmp.idx = i;
t.push_back(tmp);
}
}
void calc_p()
{
vector<Symbol> tmp;
Symbol s;
int n = sizeof(p)/sizeof(double);
for (int i=0;i < t.size();i++) {
for (int j=0;j < n;j++) {
s.p = t[i].p * p[j];
s.idx = i * n + j;
tmp.push_back(s);
}
}
t = tmp;
}
void add_len(Symbol& s)
{
for (int i=0;i < s.f.size();i++)
t[s.f[i]].len++;
}
double calc_l()
{
priority_queue<Symbol> pq;
Symbol tmp, sum;
double length = 0.0;
for (int i=0;i < t.size();i++)
pq.push(t[i]);
while (pq.size() != 1) {
sum.f.clear();
sum.p = 0.0;
for (int i=0;i < 2;i++) {
tmp = pq.top();
pq.pop();
sum.p += tmp.p;
if (tmp.idx == -1)
for (int j=0;j < tmp.f.size();j++)
sum.f.push_back(tmp.f[j]);
else
sum.f.push_back(tmp.idx);
}
add_len(sum);
pq.push(sum);
}
for (int i=0;i < t.size();i++)
length += t[i].p * t[i].len;
return length;
}
int main()
{
init();
cout << "平均符号長(1次) : " << calc_l() << endl;
for (int i=2;i <= NUM;i++) {
calc_p();
cout << "平均符号長("<<i<<"次) : " << calc_l()/i << endl;
}
return 0;
}買い替え買い替え
結構前からケータイ本体のスピーカーがぶっ壊れてて、電話がかかってきても向こうの声が聞こえない(ヘッドフォンつければ聞こえる)のでケータイを買い換えたい。
条件としては
auで
ラジオ聴けて
ワンセグ出来て
スライド式じゃなくて
安いやつ
EZ-FMできるやつがほとんど無いorz
料金プランもずいぶん変わっちゃってるし・・・・俺みたいな人間には理解できないよ
携帯電話ってなんであんなに高いの?
5万とか何?
むしろ、あんなに小さい機器のなかにあんだけ詰まってるんだから、安いと見たほうが良いかもしれません。
でも、結構買い換える人とか大変だよね。
情報源を「拡大」するッ!!
ハフマン符号とブロック符号を習ったよ!
シャノンの第一符号化定理によれば、情報源からの系列を符号化する際の平均符号長Lは、ブロック符号を用いれば、情報源のエントロピーHを下限として、小さくすることができるわけですよ。
記号a,bを出す独立生起情報源を考えるとき、それぞれの確立を
とすると、エントロピーHは
となるわけです。
っつーことは、いくらブロック符号化しても、0.72ちょいまでしか平均符号長は下がらないわけですよ。
勿論これは証明されてるわけなんですが、実際に情報源を拡大してシミュレーションしてみましたよん。
平均符号長(1次) : 1 平均符号長(2次) : 0.78 平均符号長(3次) : 0.728 平均符号長(4次) : 0.7408 平均符号長(5次) : 0.73792 平均符号長(6次) : 0.725248 平均符号長(7次) : 0.731756 平均符号長(8次) : 0.732228 平均符号長(9次) : 0.72514 平均符号長(10次) : 0.728201 平均符号長(11次) : 0.729601 平均符号長(12次) : 0.725041 平均符号長(13次) : 0.726214 平均符号長(14次) : 0.728045 平均符号長(15次) : 0.72494
さすがに、15次に拡大すると時間がかかるな・・・・
1次っておかしいね。「1次」=「拡大してない」って意味でよろしく。
まぁ、とりあえず0.72ちょいに収束しそうな勢いですね。
みっともないプログラムですんで、要望があれば載せますね。
なくなった
回数券なくしたorz
どこ行ったのヨォォォ!!!
俺の一枚120円の大学直行バスの回数券どこ行ったのヨォォォ!!
一枚損した
凹む
ふーりえきゅーすー
フーリエ級数に入りましたよん
関数のベクトル成分表示だとか関数空間での内積だとか、持論展開しまくりの先生なんですが、これはこれでわかりやすかったりするんだから不思議。
説明が終わったあとに、
『とりあえずこんな感じです。私の説明で納得できた人は数学屋には向いてません。』
だってさw
とーり あえず使えりゃいいのよ。技術屋なんだし。