正規表現
リャマ本(表紙にリャマが載ってるから・Perl入門の名著)を読んでお勉強中なんですが
正規表現で軽く詰まったorz
覚えることたくさんで大変でございます。明日C++のレポート出さなきゃいけないのにやってない。まぁ、10分くらいでやるのでいいです
正規表現の章で、文字列の置換を「カンタンに」行えることがわかったので、Cで作ったHTMLコンバータをPerlで書いてみる
#!/usr/bin/perl %map = ( "&" => "&" , """ => "\"", "<" => "<" , ">" => ">", ); print "<pre>\n"; foreach $str (<>) { foreach (sort keys %map) { $str =~ s/$map{$_}/$_/g; } print $str; } print "</pre>\n";
多分ちゃんと動くはず!どこか問題があれば教えてくださると嬉しいです。
「ここはこうすると省略出来るよ~」とかも教えてくださると嬉しいです。
ひとつの行に対して「&」、「"」、「<」、「>」の処理を行っているので、あんまり宜しくないと思います。いっぺんにする方法はないんでしょうか。
さらに、処理する順番では「&」を一番最初にしないといけないのでsortで「&」が最初にくるようにしておいた
もっとスマートに出来る筈
それでも、Cで50~60行かかってたプログラムが20行かからないってのは凄い。
っつーか文字列いじるのすごい楽
○○ダイエット

分割ナップサック問題
C++の勉強も始まりましたが、しばらくはつまらないと思いますorz
周りに合わせるのも、必要な能力だと思いますorz
参考書借りてこよう・・・・
5kg入る袋があって、200万円で2kgのダイヤモンドと150万円で1kgのサファイアと300万円で4kgのルビーとかいろいろあったとして、どの組み合わせで入れると価値が高くなるでしょうか?
という問題がナップサック問題
分割できるとき(ダイヤモンドは1kgだけで、サファイアは4kgにしようとか)は分割ナップサック問題と言われ、
分割できないときは0-1ナップサック問題とか呼びます
分割ナップサック問題は
1, 単位重さあたりの価値が高い順に並べる
2, 単位重さあたりの価値が高いものから取り合えずある分だけ全部入れていく
3, ある分全部を入れていくと、途中できっと容量を超えるはず(ピッタリ収まることは少ないです)
4, (ナップサックの容量)-(今まで入れた総重量)だけ入れて、(まだ残っていれば)残りは入れない
結構簡単です。
(実際には配列を使ってi番目のものがどれだけ入っているかを他に保存したりする)
単位重さあたりの価値が高いものから順に入れていくのはO(n)で済みますが、単位重さあたりの価値が高い順に並べるのにソートを使うので最低でもO(nlogn)かかります
よってO(nlogn)になりますね。
0-1ナップサック問題は少し面倒
動的計画法で解く方法や、バックトラックで解く方法などがあります
また、こんどやろう
ノーベル物理学賞
ノーベル物理学賞
受賞した3人
みんな日本人(1人は国籍アメリカだけど、まぁ日本人ということで)
凄くね?日本捨てたもんじゃなくね?
南部陽一朗教授はシカゴ大学の名誉教授です、天才どころじゃありません
小林誠高教授はエネルギー加速器研究機構名誉教授です、天才どころじゃありません
益川敏英教授は京都大学名誉教授です、天才どころじゃありません
・・・・・・・・すげぇ、日本すげぇ・・・・
益川教授は
「ノーベル賞とったことは嬉しい事ではない、それよりも理論が実験によって正しいと証明されたときのほうが嬉しかった」
カッコよすぎる・・・・・・・・その理論書いたの俺が生まれるずっと前なんだけど・・・・・
ノーベル賞をとった内容は説明できません。理解できません。馬鹿です俺orz
アインシュタインの一般相対性理論のその先を完成させたいって・・・・大統一理論か!?
すごいなー、すごいとしか言えない
ノーベル賞
理系の人間たるもの理系のノーベル賞候補は知っているべきなのですが
ごめんなさい、知らないんです
後で調べよっと
作家の村上春樹さんは候補にあがったことはありますけど、ノーベル賞は取ってないはず
取れると良いですね
日本人はイグノーベル賞を取る人が多いとか(笑)
カラオケとかはイグノーベル賞取ったはず
逆に難しいと思う
海外では、経済学のノーベル賞取ったのに自分の会社を倒産させた人に送られたはずです
俺もなんか賞欲しい
頑張ったで賞とかでもいいから