DevQuiz しりとりで使ったプログラム #gdd2010jp

まず、今回のクイズのしりとりに勝つため私が考えた作戦は、相手(コンピュータ)に、先頭に使用されているより末尾に使用されている数が多いアルファベットの単語から選ばせるようにすれば、そのうち相手が手詰まりになって勝てるだろうというものでした。

そのため、選択肢となる単語に使用されている先頭のアルファベットと末尾のアルファベットの数を調べるためのプログラムを作成し、その結果をもとに以下の優先順位で回答を選択していきました。

1.単語の末尾が先頭の方が少ないアルファベットのもの
2.単語の末尾が先頭と末尾で同じアルファベットのもの
3.単語の末尾が先頭の方が多いアルファベットのもの

例えばLv3の場合、以下のような結果になるので、提示される選択肢の中からできるだけ末尾が、b、f、g、i、k、q、s、u、v、wのものを選択していけば良いということになります。

a :  14   11  >>
b :  11   12  <<!
c :   4    4  ==
e :   4    4  ==
f :  11   12  <<!
g :  11   12  <<!
h :   4    4  ==
i :   4    5  <<!
j :  14   11  >>
k :  11   12  <<!
l :   3    3  ==
m :   4    4  ==
n :   3    3  ==
o :  14   11  >>
p :   4    4  ==
q :  11   12  <<!
r :   3    3  ==
s :  11   12  <<!
t :   4    4  ==
u :  11   12  <<!
v :  11   12  <<!
w :  11   12  <<!
y :   4    4  ==
z :   5    4  >>

--- siritori.pl

#!/usr/bin/perl
#
# GDD 2010 DevQuiz しりとり
#

use strict;
use warnings;

my %alpha_head = ();
my %alpha_tail = ();

open my $infh, '<', "siritori.txt";
while (my $word = <$infh>) {
    chomp $word;
    my $head = substr($word, 0, 1);
    my $tail = substr($word, length($word) - 1, 1);
    $alpha_head{$head}++;
    $alpha_tail{$tail}++;
}
close $infh;

foreach my $key (sort keys %alpha_head) {
    print "$key :" . sprintf("%4d", $alpha_head{$key});
    print " " . sprintf("%4d", $alpha_tail{$key});
    if ($alpha_head{$key} < $alpha_tail{$key}) {
        print "  <<!\n";
    }
    elsif ($alpha_head{$key} > $alpha_tail{$key}) {
        print "  <<\n";
    }
    else {
        print "  ==\n";
    }
}
[2003] Posted by kagahiro at 2010/08/23 17:18:13
オープン | 0 point | Link (1) | Trackback (0) | Comment (0)

キーワード

Google 開発者 クイズ 2010 しりとり ソースコード 

ジャパンのホームページ


DevQuiz しりとりで使ったプログラム #gdd2010jp 関連リンク

DevQuizやってみましたが・・・ #gdd2010jp
Google Developer Day 2010 Japan」への参加証を獲得するためのクイズ「DevQuiz」をやってみました。結果はラウンド3のしりとりLv3までクリアして時間切れ終了でした。「パックマン」は難しかったですね。結局、仕...

DevQuiz しりとりで使ったプログラム #gdd2010jp トラックバック

トラックバックURL :


DevQuiz しりとりで使ったプログラム #gdd2010jpへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (78 PV)
  2. Google News (グーグルニュース)日本版 (11 PV)
  3. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (9 PV)
  4. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (6 PV)
  5. YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (4 PV)
  6. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (3 PV)
  7. ウェブページを1回だけリロード(再表示)する方法 (3 PV)
  8. MySQLのUPDATE文でLIMIT句を使用して上位3件のレコードを更新する (3 PV)
  9. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (3 PV)
  10. Blog「ネットペテン師の憂鬱」が某掲示板管理人のいたずらで削除 (2 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1819 PV)
  2. Google News (グーグルニュース)日本版 (152 PV)
  3. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (135 PV)
  4. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (127 PV)
  5. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (123 PV)
  6. YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (115 PV)
  7. SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (114 PV)
  8. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (106 PV)
  9. ウェブページを1回だけリロード(再表示)する方法 (89 PV)
  10. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (80 PV)

アクセス統計

ディレクトリ

関連サイト