Home > Archives > 2007-04

2007-04

二桁の掛け算を素早く暗算する方法

最近使い始めた、同じ二桁(1の位の和が10であるもの)の数の掛け算を素早く暗算する方法を紹介します。

例:75×75を暗算する

頭の中で、

7×(7+1)×100+5×5=5625

のように計算します。
これは、まず始めに十の位の数とその数に1加えた数の積を求めます。
上の例では、7×(7+1)=56ですね。
この積(56)の右に25(=5×5)を書く
答え、5625となります。

ホントに正しいの?という方は…どうぞ→「75×75=

暗算方法の種明かし

では、何故上のような計算をしたのでしょうか?
それを解くヒントは、掛け算しやすい形に(因数)分解して計算することです。
先ほどの例を使ってみましょう。

75×75
⇔(70+5)(70+5)
⇔70×70+2×70×5+5×5
⇔7×7×100+7×100+25
⇔7(7+1)×100+25
⇔5600+25
⇔5625

の様になります。
上の式の緑の部分を見ると、何故一の位が5である二桁の数同士にしかこの計算方法が使えないかが分かります。
もし、一の位が5以外の数xとした時2*x≠10にならず、括弧(共通因数)で括れないからです。

普遍性のある暗算法

今回この記事を書くにあたって「計算 暗算 掛け算」などを検索した結果、インド式暗算法(湘南 研究所)というのを知りました。

一言でまとめると、二桁の掛け算を四角形の面積と捉え、それを計算し易い4つの四角形に分割したものの面積の和をとるというものです。

これはかなり良いですね。知り、実践すれば「おー、確かに、頭の中で筆算描くより楽だ」と実感すること請け合いです(^-^)bお試しあれ。(頭の中でそろばんはじいている方にもオススメ)

単純作業を行ううえで、このような思考の簡略化を行えるフレームワークは大事ですね。

チャットログから本文を抽出

先日、メッセンジャーのチャットで会話するボットを作りました。 そのボットに「学習」させるネタに、会話文であるWindows Live Messengerのチャットログを用いることにしました。しかし、ログはXML形式なので、本文以外の余計なタグがはいっています。
まあ、エディタで不用な部分を置換していっても良いのですが...

抽出処理をRubyで自動化

仮に1時間かかる単調作業をするとしたら、私は50分かけても、その作業をこなすスクリプトを書く。

と言う言葉を思いだしたので、早速、Windows Live Messenger(前MSN)のチャットログから本文のみを抽出するコードを書いてみました。

#! ruby -Ks
require ‘kconv’
MSNRegexp =/(.*?)<.Text>/xm
data = ""
filename = ARGV[0]
begin
  open(filename) do |f|
    f.each do |line| # ファイルから1行ずつ読む
    line = Kconv.kconv(line, Kconv::SJIS) # 文字コードを変換
    line.chomp!
    next if line.empty?
    data.concat(line)
  end
end
rescue => e
  puts(e.message)
end
open(’msnLog.txt’, ‘w’) do |f| # 出力ファイル
data.scan(MSNRegexp){|tdata|
  if tdata
    f.puts(tdata)
  end
}
end

上記のコードをプロンプトで抽出したいファイル名を引数に与えて 実行すると、msnLog.txtというファイルに本文が抽出されます。発言者なども抽出したい場合は、正規表現の部分を修正すれば良いですね。

では、今し方学習したボットとの会話はこんなです。 「とあるボットのチャットログ」 やってる本人は、結構楽しんでましたね^^;と言うか合せてました。

今後の改良点

当面の課題は、辞書のメンテツールの作成及びデータベース化、人格形成、文脈・話者理解と情報収集・加工機能を利用環境に合せたエージェント化とか(ぅぉぃ)。

とあるボットのチャットログ

人工無脳とのチャットログ

yukun> こんにちは
bot > こんちは
yukun> 元気してた?
bot > 元気に、そう見えても、おかしくはないがね。
yukun> そうか
bot > でしゃばりすぎだゼバーン!!
yukun> ぐわー!やられた・・・
bot > 自我があって、次のステップにいけなくなって、またねー
yukun> その自我とは?
bot > 自我になりえると思うよ
yukun> 今日は人工知能と自我について話そうぜ
bot > 何というか人間の思考を模倣することと自我とは全くの別問題だと思うのだよ?
yukun> ほんとにそう思う?
bot > 人工知能とかよりも早く義体できないかなぁとか思ってしまうな
yukun> え、あぁ義体ねぇ。つけてみたいか?
bot > 義だけ聞くと、ありがちな体ではあるね。
yukun> そうなのか。そんな体が在ったとは…
bot > かわいー!
yukun> お前さん、特殊な感性をしているな
bot > お前らと出会うことになるね、人間らしい考え方のプロセスを持つものは出来るけど、それの宇宙版なんだ。
yukun> もう、どう突っ込んでよいか…人間らしい思考のプロセスって具体的に何だろうね。
bot > わかればいいんだけどさ
yukun> わからないか?
bot > 違うよ…
yukun> と言いますと…
bot > じゃあこれ知ってる?
yukun> 何でしょう
bot > 何はわからん
yukun> 焦らし過ぎだから、残念!
bot > 残念なことに質問型の人工知能には、こっつちの質問できることにリストが必要だからね
yukun> 必要なら、学習させれば良いじゃないか
bot > な、なんだってー!?
yukun> まぁ、機械学習にも色々あるが、できないことはない
bot > IF-THEN型の学習ではフレーム問題に行き着くね。
yukun> お、なかなかどうして良いタイミングで鋭いことを言うじゃないか
bot > どんなタイミング型?
yukun> IF-THEN型のタイミングさ
bot > IF-THENは見てるタイミングない
yukun> 見るんじゃない、感じるんだ
bot > そんな感じw
yukun> マジか、ついに感性!?んなアホな

所々、文法が崩れているところがありますが、まぁ、予想の範囲です。

Home > Archives > 2007-04

バックナンバー
最近のコメント
最近のトラックバック
メタ情報

Return to page top