「日記2010年11月」の編集履歴(バックアップ)一覧に戻る

日記2010年11月 - (2011/01/01 (土) 18:20:32) のソース

*2010/1/1
http://no1coder.blogspot.com/
ハイレベルなプログラムの登竜門プログラムコンテスト参加者のブログ。
うーん僕と違ってレベルが高い。
でも研究の場だともっと複雑なプログラムになるんだよな。
コンテストは所詮入り口何だろう。



*2010/12/23
世にこんな本があればなあと思うのです。


それはこんな本です。
大判の本で、本にはプログラミングの学習方法が書いてあります。


本の最初のほうではこんな感じです。
プログラムの学習手順や本が進化の木のような図で書いてあります。
木の根元のほうには初心者向けの本などが並び、枝先では高度で専門的な内容の本が並べてみます。

木の幹には本の写真と簡単な解説がついており、枝には○○という本で××という概念を学習したら○○という本を読もうということがかいてたりします。


例えば
((C言語、初心者)の進化の木)というページがあるなら、木の根元がC言語の簡単な本から始まって、簡単なアルゴリズムという枝先や、構造体を多用してクラスプログラミング枝先、初めての組み込み系という枝先になっていたりします。

(C言語 Webプログラム)の進化の木ならWebプログラムに関する本や概念が適切な学習順序で並べられて木構造で表現されたりします。

木はもちろんイラストです。





本の序盤は上記のような感じのイラストが並びます。
本の中盤には、学習方法の解説や本のリストがあったりします。

(ロボ 制作 組み込み)という項目なら、初心者向けのロボット組み立てキットの紹介から初めて、最終的にフルスクラッチでロボを作るまでの学習手順と学習時間、学習すべき内容や手順が示されたりします。
学習に当たって購入すると良いボードの種類(日本語でも学習しやすいなど)などの解説もあるといいですね。





例えばほかに本に(Jscript、中級 Web)という項目があったとします。
その項目の解説はこんな感じだったりします。
-解説
、、、、
ここでは、初心者向けの本のような簡単なギミックを取り扱った本とは違う。
少し高度な内容を扱った本やWebサイトを紹介する。
scriptなどで2次元配列に関数をいれておくなどプロが使う豊富なテクニックや、現場でよく使われるJqueryの使い方。
CSSとjscriptを組み合わせて精密なWebデザインの方法について取り扱った本を紹介する。
、、、
-解説終わり
このような解説が掲載され、順番に学習していくのに最適な本と、本の関係や適切な学習順序などが示された図などがあります。
図は例えば基本的なアルゴリズムの本の後に、その基礎的なアルゴリズムを応用した本が提示されるなど関係を表した図が掲載されたりします。






もうひとつ例を挙げるなら別のページで
(数値計算 初級) という項目なら
-解説
、、、、
ここでは数値計算に慣れるために、高校生レベルの知識があれば簡単に実行できる簡単な数値計算について扱った本を紹介する。
、、、
とあったり



(数値計算 中級)という項目なら
-解説
、、、、、、
この項目で紹介する本に共通する概念は、有限要素法、差分方程式であり、読者はこれらの知識を必要とする。
これらの概念について扱った本や実際の計算方法やコーディングについて扱った本について掲載する。
これらは数値計算の基礎であり必ず押さえておくべき内容である。
、、、、
-解説終わり



本の中盤では本やWebの紹介が行われます。

よくわからない人向けに学習に必要な概念について学べる概念本が紹介されたり。
概念が分かっている人のための専門的な本などが紹介され、これらが図入りで本の種類別にグループわけされたり、学ぶにおいて根本となる概念や学習方法について書いた図が用意されたりします。




前半が学習手順をあらわした木。
中盤は学習手順や学習内容の詳細な解説となります。








ほかに、JavaとかC#とかPHPとかなんでもいいですが、こういう学習手順がたくさん記載された本を作りたいのです。
学習方法の辞典です。
内容は数年立てば古くなるでしょうから、数年に一度出版できたらいいかなと。


補足
こういう本が出て、それが出版業界の刺激になればいいですね。
初心者向き本だらけのプログラミング本の世界が少し体系だって、学習しやすい出版体系になれば幸い。
なんてのが私の小さくて大きすぎる夢だったりします。


編集履歴
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1252474052
http://bbs.wankuma.com/index.cgi?mode=al2&namber=56018
に投稿したものを、推敲して転載しました。

記事製作者 堀江伸一 〒675-0033-79-16
















*2010/12/21
今日は入力された複数の単語から有限オートマトンを自動生成し、この自動生成されたオートマトンを使って、長い文字列の中から単語を探すソースコードというものを考えたので記載。
自分で考えただけなので何かミスがあるかもしれないし、世の中探せばもっといいコードがあると思う。
正規表現のできそこないかもしれないけど一応日記として記載。



木構造を使った例。


bough;クラス
変数charsをcharクラスで定義。
変数otherBoughをboughクラスで定義。
end

charクラス
変数 otherCharをcharクラス
変数 cは単語を構成する一文字。 
変数 nextBoughをboughクラスで定義しておきます。
end



この2つのクラスを定義します
bouthのchar変数はcharでできたリスト構造となります。
単語を構成する一つ一つの一文字を保持し、ほかの文字を保持するリスト形式です。

クラスは最初boughクラスから一つから始まります。

1 bouthクラスは単語が入力されると、単語1文字目から検索を初めます。
リストのcharsに同じ文字があれば、その文字の先にあるbouthクラスへと移動します。

2 bouth(枝)クラスにcharリストに対応する文字がなければ、その文字を保持するcharクラスを追加し、新しい(bouth)枝クラスをcharクラスに追加し,できた枝先に移動します。

1か2が終わったら入力された単語の一文字先へ移動し、1、2を繰り返します。
これを繰り返し、単語の終端にたどり着くまで単語の木の検索と生成を進めます。

単語の終端にたどり着いたら木の枝先に文字列の最後をあらわす¥0を追加します。


これによって検索する単語のリストできた有限オートマトンの木が自動生成されるので、後はこの木を使って、長いアミノ酸データを検索すればいいのです。

日本語の漢字変換に比べたらはるかに簡単ですね。
だって設計図がこんなに短いんですから。
頑張ってくださいね。

ちなみに上記の設計図をもう少し改良すれば完璧なオートマトンを自動生成できそうですし探せばそういうオートマトンの自動生成プログラムもありそうですね。

改良してみましょう。
少しばかり低速ですが、完璧に動くオートマトンを自動生成する手法です。

単語を入力し終わった木を改良します。
もし探す単語が
wccm
ccta
という場合、wccまでいって次の単語がtだった場合cctまではあってるのです。
改良前ではこれに対応していません。
この場合を木に組み込みましょう。

-改造例
木に入れられた適当な単語を選びます。
例えば
CWDCIHFIDH
だったとしましょう。
頭と最後を切り落としたWDCIHFIDを使います。
(m,n)をWDCIHFIDのm文字目からn文字目までを切り取り木からサーチする操作とします。

(1,8),'(2,8),(3,8),,,(7,8),(8,8)
(1,7),(2,7),,,(6,7),(7,7)
,,,
(1,1)
としましょう。
もし
(3,8)でヒットしたとしたら
木の先CIHFID(3文字目から8文字目)であらわされる枝からCIHFIDであらわされる枝先へのリンクを張ります。
具体的にはotherBoughをNULLから枝CIHFIDへの参照にするのです。

これはWDCIHFID、、、となる単語でのルートが途切れても
CIHFID、、、と繋がる単語に繋がっていることになります。

(4,8)~(8,8)について調べる必要はなくなったので
(1,7)からはじめて同じように枝先を調べます。


木のRoot要素、根元のotherBoughは根元への参照となり次の文字を読み込むことになります。
これによって、多少実行速度は遅いですが、自動生成された完璧なオートマトンの出来上がりとなります。


ちなみにこの方法は
ccc
accca
という単語を探すとき
dacccad
というデータがあればacccaが優先されcccが無視される方法となります。


*2010/12/17
2010/12/9からKSP職業訓練専門校加古川教室で授業を受けている。

15時30分から20時30分まで平日全部が授業で一応今日まで皆勤賞。
ちゃんと出席はしているのだけど。
どうも不安。

ホームページ制作科でホームページつくりの授業なんだけど、内容がレベルが低くてこれでいいのかと不安になる。
大丈夫なのだろうか?
凝ったプロのサイトみたいに、動的なページとか2次元配列に関数を入れて返すとか、そういうちょっと高度なことを習いたいのに、IBMホームページビルダーを使ってのホームページ作成。
現実は落差が大きい。



*2010/12/17
僕は今年の夏明石の川崎重工に勤めていた。
夏、このまま働けるかなとおもったら、女性従業員に対しセクハラをしてしまい首になってしまった。

このセクハラでどうしても心残りがある。
誤解がひとつ。
彼女にこう伝えたい。


セクハラ発現をしたその日の夕方には、女のこのことなんてきれいさっぱり忘れ去っていた。
何せセクハラの内容といったら、アメリカ流のハグをしたいというだけの軽い気持ちで発言しただけ。

昼の仕事中にセクハラ発言ををしたときに彼女からは断られたので、発現した10分後には女のこのことなんてどうでもよくなり、夕方になる頃には顔も思い出せない程度だった。

夕方仕事帰りには完全に忘れ去っていたわけだ。

夕方になった僕は仕事場から出て、広大な工場の敷地を通り入り口まで到達したところでサイフと鍵をロッカーに忘れてたのを思い出してとりにかえった。

君は入り口で引き返した僕を見たのか話を聞いたのか知らないけれど、何か待ち伏せしていると思い込んだようだけど、実際は只単にサイフを取りにいっただけだったんだ。

これで君の人生の不安が一つ消えたなら幸いだとおもう。
これからの人生でもう君に合うこともないだろうし、あっても顔がわからないだろうから安心していい。
なにせ夕方には忘れ去っていたくらいなんだから。

これを何とかして明石工場のロボット製造部の女の子、誰かわからないに伝えたいんだけど。
伝えていいものなのだろうか?




*2010/12/7
作りかけのプヨプヨ箱詰めの○パクリゲーム。
http://www.geocities.jp/sinapusu2002/suugaku/puyopuyohakodume.html

後はアニメーション処理を記述するだけなんだけど、このアニメーション処理が大変なんだよね。



http://www.geocities.jp/sinapusu2002/suugaku/puyopuyohakodume2.html
アニメーション処理にするための骨格だけ定義したバージョン。
見た目は変わらないが、実は内部的には結構進歩している。

後はこのデータを画像で置き換えるだけなんだけどめんどくさいな。
*2010/12/11


プヨプヨ箱詰め追加ルール版
http://www.geocities.jp/sinapusu2002/puyopuyohakodume/puyopuyohakodume6.html 
こんな画面になった。
しょぼい、涙が出るほどしょぼい。
のだが、まあ短時間で作った片手間パズルだからしょうがないか。
追加ルールあり版。
http://www.geocities.jp/sinapusu2002/puyopuyohakodume/puyopuyohakodume4.html



*2010/12/6
因子分析をC言語で一からプログラム。
300行くらいなので調度良い長さ。

因子分析の概論は分かるのだけど。

実際の、行列の3重対角化やプログラムの中身がよくわからない。
よくわからないながらも打ち込んでるうちになにかわかるだろうという感じもする。

それにしても因子分析は括弧の対応が分かりづらいな。



http://www.math.kobe-u.ac.jp/HOME/taka/video-ja.html 
神戸大学のサイトに、C言語のネットワークプログラミングの授業映像があった。
基礎概念は分かりやすいけど、授業全体がもっさりしている。
もっと効率よく教えることが出来るのではないかと疑問。

それにしても、標準ライブラリを使うと基本的な考えかたはシンプルなのね。


管理人名前 堀江伸一
住所 兵庫県加古川市加古川町南備後79-16



*2010/11/27
http://www.geocities.jp/sinapusu2002/suugaku/sannkakukei.htm
こんなつまらないスクリプトを作ったりしても、まあお金になるわけもなく。
昨日は国のやってるホームページ+CSSな講座に面接に行った、受かったらいいなあ。
月10万円の援助金付で学べるという高環境。

多分中間マージン取られてるとは思うけど、学びながら10万は嬉しい。
これで仕事に結びついたらいいなあ。

JavaEEの教科書がかなりわかりやすい。
面白いかも?



*2010/11/18
嘘日記
今日の戦況 ガンダム同人小説作りかけ


朝日が上がると同時にヒューと荒野にある都市へと弾丸が吸い込まれていく。
周りは平らな荒野、草も少なく台地の起伏も少ない。
吹く風は砂埃を含み。
ここはアフリカのとある小国。
連邦政府に属する小国である。

都市の近くに小高い丘があり、そこから都市へと向かっていく弾丸を眺めている姿があった。
部隊を指揮する士官である。
都市に立てこもっているジオン軍への砲撃を眺めているのだ。
味方の砲撃陣地から定期的な間隔で、弾丸が発射されていく。


一年戦争、その中で数多く行われた小さな戦いの一つだった。
ジオンも連邦も興味を持たないような小さな国とジオンの戦争。
ジオン側にしてみれば少ない戦力で占拠できるかもしれない。
そういうことを期待しての戦力配分だった。
占拠できたら良好。
占拠できなくても、失うものは少ない。


勢い、両軍のもつ戦力は小さく戦いも規模が小さい。
国内に数十ある小都市や数千アル小村を奪い合う戦い。
歩兵が多く、機械化部隊は数が少ない。


隣の部隊ではガンタンクが一機配備されたらしい。
ガンタンクがあれば、あの都市ごとジオン部隊を破壊できるだろうか?

ああ、あの都市は俺の親友の故郷だったな。


そんなことを考えながら着弾を眺めていると、後ろから声がかかった。






/2010/11/15
Yahoo知恵袋での回答用に作ったjavaファイル。

http://www.geocities.jp/sinapusu2002/suugaku/wordCount1.txt
http://www.geocities.jp/sinapusu2002/suugaku/docCountB.txt
http://www.geocities.jp/sinapusu2002/suugaku/countStart.txt

うーん最初の未テスト作りかけプログラムではtf-idfの算出にバグがあったのできちんと修正。

http://ja.wikipedia.org/wiki/Tf-idf
特定フォルダ内に用意されたテキストファイルをSenで読み込み、ドキュメントのtf-idfの算出を行うJavaクラス。


勉強用にCで作ったBigInteger。
Biginteger同士の足し算 引き算と BigとShort型の掛け算と割り算を行える。
足し算と引き算の処理がとても適当で実務で書いたら怒られそうな処理になってしまった。 

http://www.geocities.jp/sinapusu2002/suugaku/Biginteger3.txt



*2010/11/16
最近金はたまらないがYahoo知恵袋のポイントが溜まっていく
http://my.chiebukuro.yahoo.co.jp/my/sinapusu2002

紙くず以下のポイントがたまっても何も嬉しくないなあ。

ベストアンサー率60%から上げることができない。
ベストアンサー率を挙げれない理由。

1 自分の不得意分野にも回答をしているから
2 質問者があまりにあいまいな質問をして答えようが無いから
3 他の回答者がいい回答をすることがあるから


1はしょうがない。
3も仕方が無い。

問題は2。
これがあるからベストアンサー率を上げることが不可能なんだよね。