スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

プロフィール画像

――を変更しました。

ニコ動のマイページに「スタンプ」という、何で設けたのかがよく分からない機能がありますが、せっかくなんでプロフィール画像をスタンプ仕様に合わせることにしました。


まぁ、どうでもいいですね。

スポンサーサイト

12/25のツイートまとめ

reakoirer

【動画】ポケモンのしりとりがこんなに長いわけがない http://nico.ms/sm13119942 を投稿しました。 #sm13119942
12-25 02:05

ポケモンBW版:一番長いしりとり

初の横長(アスペクト比16:9)動画です。





しりとりのルールに悩みましたが、伸ばす音は、その1文字前でつなぐということにしました。

例)サンダー なら 次は「ダ」。

どちらかというと、このほうが自然ですかね。

ちなみに、このルールだと、ミニリュウは「ウ」ですが、ハクリューは「ユ」になります。多少違和感があるかもしれませんが、調べたところ、そんなに「●●ュー」の名前は該当しないので、これでいいと思いました。
ヤユヨで始まるポケモンはそこそこいるので、なるべく母音だけじゃやなく「ヤユヨ」で終わらせるようにしたほうが、多分続くと思います。



で、ここから、プログラムにまつわる話になりまして、専門ぽくなってしまい申し訳ないですが、


以前はしりとりの生成プログラムをJavaで作っていたのですが、なくしてしまいました!
そして、最近はJavaをしていないので、めんどくさくなったので、急遽Perlでスクリプトを作りました。どちらも文字列処理には適しているからいいだろうと思いましたが、文字コードの種類とか、文字をバイト単位で数えてしまう仕様とか(つまり半角は1文字1byte、全角は1文字2byte)があったり、Javaにはない不便さを実感しました。

それと、しりとりをつなぐためには、深さ優先探索とか、再帰処理とかも行うんですが、Perlでオブジェクト指向とか経験はないので、無視してやったら、結構面倒でしたね。そういう文字列処理以外の処理はCに任せるという手もありましたね…。

まぁ、結果的につくれまして、今思うと、コンパイル不要で、サーバソフトと連動してHTML形式で途中結果を簡単に整理して表示できるなど、やっぱ利点も大きいですね。

ちなみに、Perlは実行速度が比較的遅いといわれますが、本しりとり生成のための実行時間は2秒以内です。といっても、ほとんど要となる処理自体は、フリーソフトにデータを渡して任せています。


続きに、しりとりのリストをコピーペーストできるテキスト形式でで載せています。

続きを読む

ポケモンBWまでのポケモンで一番長いしりとり

さて、与えられた語を用いて、理論上一番長い「しりとり」をつくるという論文(最長しりとり問題)というものがありまして、これでポケモンだけで一番長いしりとりをつくったらどうなるかということを行なったことがあります。

そのときは、問題点の解決法の核となる「線形計画法」は専用のフリーソフトを用いており、また、それ以外のデータ生成やしりとり列生成等の処理は論文を参考にプログラムを自作しました。

作成当時、ポケモンの種類は493匹(アルセウスを除くと492匹)でしたが、ポケモンBWまでに登場するポケモンを加えると、もっと多くなりますね。なので、また、これで「しりとり」をつくろうかな、と思います。


ただ、悩むのしりとりのルールですね。とくに、

①「゛」(濁点)・「゜」半濁点
②「ー」(長音)


の扱いについて、複数の決め方があると思います。

①について、語尾の濁点・半濁点および濁点のない文字をを区別して扱うか、それとも区別せず一緒に扱うか、という点です。たとえば、前者のルールでは「アーボ」の次は「ボーマンダ」のような、「ボ」から始まるポケモンのみになりますし、後者のルールでは、「ホ」「ボ」「ポ」のいずれから始まるポケモンでもよい、というものになります。

もちろん、後者のルール(濁点無視)のほうがしりとりは続きますが、これが一般的なルールなのかは謎です。


②については、語尾の長音を母音(アイウエオ)に当てるか、それとも長音の前の文字を終わりの文字とみなすか、という点です。たとえば、「ピクシー」の次は、前者のルールなら「イ」から始まるポケモンになりますし、後者のルールでは「シ」で始めるポケモンにする、というものになります。

これはどちらがしりとりが続くのかはやってみないと分からないと思います。ただ、直感的に、母音に当てる場合には、アイウエオから始まるポケモンが不足しそうです。

ちなみに「チラーミィ」のように、小さい文字が付く場合は、大きい文字にする(「チラーミィ」の次なら「イ」から始める)のが自然だと思います。でも、たとえば「チラーミィ」「ピクシー」の語尾なんて、発音的には同じ「イ」なので、やっぱ長音も母音に割り当てる方が自然なのかもしれません。

この2つのルールを変えながら、2つ動画を作りましたが、やっぱルールが変わると長さも結構変わりますね。





結果的に長くするようなルールに割り当てるよりは、「一般的」なしりとりのルールに則るほうが望ましいと思います。しかし、一般的なルールというのがわかりませんね。

ほかにも、たとえば「ゴローニャ」の次は「ヤ」にしていますが、「ニャース」のように「ニャ」からはじめなければいけないんじゃないのか、とか。ようするに「ニャ」「ニュ」「ニョ」などを1つの音として、「ニ」や「ヤ」「ユ」「ヨ」の音とは区別するべきじゃないのか?とか、まぁ、いろいろ思うわけですね。
まぁ、このルールは従来通り小さい「ャ」「ュ」「ョ」は「ヤ」「ユ」「ヨ」にしようと思います。

あまりルールを複雑にすると、そもそも定式化できなくなりそうなので…。


一応、濁点および長音のルールについては、

濁点・半濁点・濁点のない音(たとえば「ボ」「ポ」「ホ」)は区別する。
語尾が長音で終わるものは母音(アイウエオ)に割り当てる。

という方向で行こうかなと思います。


ただ、一番の問題は、以前のプログラムをなくしてしまったっぽいところですね。ポケモンの名前データ(辞書データ)から語頭・語尾を抜き出すのは容易にできますが、線形計画法を解いた後のデータから、しりとり列をつくるのは、結構めんどくさかった気がします。年内までにUPしたいと思うんですけどね…


12/10のツイートまとめ

reakoirer

【静画】ふしぎなアンノーン http://nico.ms/im805610 を投稿しました。 #im805610
12-10 03:05

義援金募集
FC2「東北地方太平洋沖地震」義援金募集につきまして
プロフィール

れあ

Author:れあ
Twitter(@reakoirer)
数学の問題出題(@mathtam_jp)


ニコ動のユーザーページ


メール:
reakoirer.contact+blog[]gmail.com
([]を@に変えてください。返信不確実;;)

Twitter...A

れあ < > Reload

カレンダー
最新記事
最新コメント
カウンター
月別アーカイブ
カテゴリ
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。