当メモは2009-05-25に投稿されたものを加筆修正し、再掲したものです。
みなさまもお好きな言語で解いてみてくださいね。
目次
お題
Typoglycemia(タイポグリセミア)とは、単語を構成する文字を並べ替えても、最初と最後の文字が合っていれば読めてしまう現象のことである。 例えば以下の文章は: こんちには みさなん おんげき ですか? わしたは げんき です。 この ぶんょしう は いりぎす の ケブンッリジ だがいく の けゅきんう の けっか にんんげ は もじ を にしんき する とき その さしいょ と さいご の もさじえ あいてっれば じばんゅん は めくちちゃゃ でも ちんゃと よめる という けゅきんう に もづいとて わざと もじの じんばゅん を いかれえて あまりす。 どでうす? ちんゃと よゃちめう でしょ? ちんゃと よためら はのんう よしろく このように読めてしまう: こんにちは皆さんお元気ですか? 私は元気です。 この文章はイギリスのケンブリッジ大学の研究の結果 人間は文字を認識する時その最初と最後の文字さえ合っていれば 順番は滅茶苦茶でもちゃんと読めるという研究に基づいて わざと文字の順番を入れ替えてあります。 どうです?ちゃんと読めちゃうでしょ? ちゃんと読めたら反応よろしく 上記のようにTypoglycemiaを作成するプログラムを書いてください。
補足
元記事では「どう書く」というサイトでの出題に対する回答だったのですが、すでにサイトが閉鎖させてしまっています。残念です。
Groovyで解いてみた
2009-05-25 更新source = """\ こんにちは みなさん おげんき ですか? わたしは げんき です。 この ぶんしょう は いぎりす の ケンブリッジ だいがく の けんきゅう の けっか にんげん は もじ を にんしき する とき その さしいょ と さいご の もじさえ あっていれば じゅんばん は めちゃくちゃ でも ちゃんと よめる という けんきゅう に もとづいて わざと もじの じゅんばん を いれかえて あります。 どうです? ちゃんと よめちゃう でしょ? ちゃんと よめたら はんのう よろしく """ println source.readLines()*.split(/\s+/).collect{ it.collect{ it.size() <= 3 ? it : it.toList().with{ it.first() + // 最初 it[1..-2].with{ Collections.shuffle(it); it.join() } + // 真ん中 it.last() // 最後 } }.join(' ') }.join('\n')
出力例
こちにんは みなさん おんげき でかす? わしたは げんき です。 この ぶしょんう は いりぎす の ケッンブリジ だがいく の けゅきんう の けっか にんげん は もじ を にしんき する とき その さいしょ と さいご の もじさえ あれっいてば じんばゅん は めくゃちちゃ でも ちんゃと よめる という けきんゅう に もいとづて わざと もじの じばゅんん を いれえかて あります。 どうです? ちんゃと よゃめちう でしょ? ちんゃと よためら はのんう よしろく