image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2009年12月22日 | トップページ | 2009年12月25日 »

2009年12月23日

2009-12-23

ピックアップ:今後5年間に都市を一変させる5つのイノベーション, プログラマが好きそうな読み物100, etc...

- http://mainichi.jp/select/biz/it/news/20091222mog00m100044000c.html
> 遠隔教育:デジタルペン使ったウェブ講座を提供 Z会とソフトバンクBB - 毎日jp(毎日新聞)

- http://headlines.yahoo.co.jp/hl?a=20091223-00000005-eiga-movi
> 「アバター」興収100億視野に入る大ヒットスタート!(eiga.com) - Yahoo!ニュース

- http://news.livedoor.com/article/detail/4518722/
> 「小公女セイラ」で志田未来をいじめ抜いた小島藤子が初の写真集を発売! - livedoor ニュース

- http://www.chikawatanabe.com/blog/2009/12/despair.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+typepad%2Fchikawatanabe%2Fblog+%28On+Off+and+Beyond%29&utm_content=Bloglines
> On Off and Beyond: 危機感を共有するだけでは改革は起こらない

- http://d.hatena.ne.jp/essa/20091219/p1
> 原油高と同じくらい深刻な「ホワイトカラーの仕事破壊」 - アンカテ

- http://blogs.itmedia.co.jp/mm21/2009/12/55-c86a.html
> 今後5年間に都市を一変させる5つのイノベーション:永井孝尚のMM21:ITmedia オルタナティブ・ブログ

- http://suiseisekisuisui.blog107.fc2.com/blog-entry-1091.html
> ギャルゲーブログ 付き合ってはいけない女の特徴とその体験談

- http://valvallow.blogspot.com/2009/12/100.html
> vallog: プログラマが好きそうな読み物100

ピックアップ:甦る 実物大ガンダム!, マスメディアを殺せば日本は圧倒的に独り勝ちする, etc...

- http://googlejapan.blogspot.com/2009/12/blog-post_21.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+GoogleJapanBlog+%28Google+Japan+Blog%29&utm_content=Bloglines
> Google Japan Blog: モバイル検索のインデックス改良のお知らせ

- http://www.gizmodo.jp/2009/12/post_6561.html
> 甦る、甦る、甦る、実物大ガンダム! : Gizmodo Japan(ギズモード・ジャパン), ガジェット情報満載ブログ

- http://d.hatena.ne.jp/aike/20091223
> Rubyでもっとも重要なライブラリは何か?PageRankで計算してみた - aikeの日記

- http://www.famitsu.com/game/news/1230763_1124.html
> 販売2時間以上前に完売! 『ラブプラス』ケーキを求める彼氏大集合 - ファミ通.com

- http://www.appbank.net/2009/12/23/iphone-application/75255.php
> Yahoo!地図: 地下街でももう迷わない!都市生活者に便利なマップアプリ。無料。2072

- http://ameblo.jp/ryo640/entry-10412224083.html
> 美人時計公式モバイルサイトがオープン!!|美人時計広報のブログ

- http://blog.livedoor.jp/franklie/archives/51333560.html
> 思わず見入ってしまった20分くらいの手書きGIFアニメーション:ふらぶろ

- http://d.hatena.ne.jp/KoshianX/20091223/1261544417
> マスメディアを殺せば日本は圧倒的に独り勝ちする - 狐の王国

- http://kachibito.net/software/postcard-design_kit.html
> 日本郵政が無料で配布してるAdobeAIR製の「はがきデザインキット2010」でサクッと年賀状をデザイン - かちびと.net

- http://gigazine.net/index.php?/news/comments/20091223_sorry_jreast/
> JR東日本公式サイトが不正アクセスにより改ざんされて一時停止中 - GIGAZINE

- http://www.lifehacker.jp/2009/12/091223evernote.html
> Evernoteがついに正式にアンドロイド市場に参入 : ライフハッカー[日本版], 仕事も生活も上手くこなすライフハック情報満載のブログ・メディア

Scala で 有理数処理を

Web 上のいろいろなサンプルを参考にして、計算式を 有理数で処理する例を作成した。
有理数で処理するというのは、
  "1/3 +1/2" を 0.833333 とせずに
  5/6 の分数として計算する
ということ。
もちろん (1/3) * 3 は 0.9999... でなく、正確に 1 として計算する。

現状でのソースコードは以下。有理数クラスと、計算式パーサー から構成される。

有理数クラス
----------------
http://sourceforge.jp/projects/ruby-xbrl/svn/view/trunk/ScalaApplication1/src/rational/
  Main.scala            // 有理数クラスの呼び出しサンプル
  Rational.scala      // 有理数クラスの実装
http://sourceforge.jp/projects/ruby-xbrl/svn/view/trunk/ScalaApplication1/test/rational/
  RationalTest.scala  // 有理数クラスの junit テストケース

計算式パーサー
-------------------
http://sourceforge.jp/projects/ruby-xbrl/svn/view/trunk/ScalaApplication1/src/calc/dsl/
  calc3.scala // 実装
      これに対する junit テストは未作成。
      ただし、BigDecimal で計算をするケースでの計算式パーサーとその junit テストが以下にある。
      http://sourceforge.jp/projects/ruby-xbrl/svn/view/trunk/ScalaApplication1/src/calc/dsl2/
      http://sourceforge.jp/projects/ruby-xbrl/svn/view/trunk/ScalaApplication1/test/calc/dsl2/

じつは、この計算処理を RemoteActor で client/server 構成にした例も作成してある。
 http://sourceforge.jp/projects/ruby-xbrl/svn/view/trunk/ScalaApplication1/src/calc/dsl/
  server.scala
  client.server
である。
使い方は2つのコンソールを開き、
コンソール1: $ scala -cp . calc.dsl.server
コンソール2: $ scala -cp . calc.dsl.client
とするだけである。

client 側で 数式を入力して改行すると、計算結果が表示される。
空行の入力で client プログラムは終了する。(server 側は 現状では ctrl-c で中止するしかない)

計算結果は、分数形式と小数形式の2通りで返ってくる。循環小数部は { }  で囲んで表す。( 0.33333 は 0.{3} となる。)

クライアント側の操作画面例を示す。(太字が入力文字)
--- ここから ---
$ scala -cp . calc.dsl.client
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Xmx1024m
Start client.
Input Expression:
1
  result:None (=1)
Input Expression:
1/3
  expr:    1/3
  result:  1/3
  resultx: 0.{3}
Input Expression:
1/2+1/3
  expr:    1/2+1/3
  result:  5/6
  resultx: 0.8{3}
Input Expression:
355/113
  expr:    355/113
  result:  355/113
  resultx: 3.{1415929203539823008849557522123893805309734513274336283185840707964601769911504424778761061946902654867256637168}
Input Expression:
   // <- ここは 空行を入力した
Stop client.
---- ここまで ------

google の検索で "1/2 + 1/3" と入力すると
  (1 / 2) + (1 / 3) = 0.833333333
と表示されるが、 "5/6" とは表示されない。
表計算ソフトでもこのような有理数計算モードが選べるようになると良いとおもう。

P.S. [業務連絡] この投稿と sourforge.jp への commit は許可取得済

« 2009年12月22日 | トップページ | 2009年12月25日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク