[ GO FOR IT ] 2) 実数の階乗

問題:

ある検索サイトに5!と入力するとその計算結果である120が表示されます。
その検索サイトに2.5!と入力するとなんと3.32335097と表示されます。
さらにその検索サイトに(-1.9)!と入力すると-10.5705641と表示されます。
きっとそれらの仕組みはとても難しくて企業秘密に違いないので是非ともこれらを実行するプログラムを作ってほしい。
ただし、君のPCは古いのでネットワークや便利で高度な数学関数は入っていません。
入っている数学関数はsin,cos,tan,log,pow,floorなどの初歩的な関数のみです、残念ながら。

i)入力された整数a(0<=a<=10)の階乗を求めるプログラムを作ってください。 ii)入力された実数a(0<=a<=10)の階乗を求めるプログラムを作ってください。 iii)入力された実数a(-1.9<=a<=-1.1)の階乗を求めるプログラムを作ってください。 回答(C++プログラムコード):

プログラムコード:LifeClock.cpp
URL: http://leybreeze.com/blog/wp-content/uploads/2012/02/RealNumberFactorial.cpp

回答できた問題の出力:
入力によって違います。

アルゴリズムの簡単な説明:
実数の階乗と言うと、ガンマ関数のことです。
使用可能な数学関数はsin,cos,tan,log,pow,floorなどの初歩的な関数のみですから、Lanczos approximationというの近似法は使えます。
(ご参考まで:http://en.wikipedia.org/wiki/Lanczos_approximation )

実行方法:RealNumberFactorial.exe (msvcp100d.dllは必要です。)実行して実数の実部と虚部を入力してください
URL: http://leybreeze.com/blog/wp-content/uploads/2012/02/RealNumberFactorial.exe

実行環境:Windows XP/Vista/7

ライセンス:GPLv3

[ GO FOR IT ] 1) 人生の時計

問題:

あなたの一生を24時間にたとえると今日は何時何分何秒ですか?
ただしあなたはあなたの誕生日(a年b月c日)の0時ちょうどに生まれてn歳まで生きる(n歳のときは生きていてn+1歳にはなれない)とし、bとcは一般的な月日の範囲とします。

i) 1990<=a<=2000,n=80のとき、今日は何時何分何秒ですか?
ii) 1900<=a<=2000,n=200のとき、今日は何時何分何秒ですか?

回答(C++プログラムコード):

プログラムコード:LifeClock.cpp
URL: http://leybreeze.com/blog/wp-content/uploads/2012/02/LifeClock.cpp

回答できた問題の出力:
入力によって違います。

アルゴリズムの簡単な説明:
生年月日と現在の日付を取得
誕生日からn歳までの日数と誕生日から今までの日数を計算
24時間に変換
秒:誕生日から今までの日数/誕生日からn歳までの日数*3600*24
秒をよって分と時を計算

実行方法:LifeClock.exe 実行して小問の番号と生年月日を入力してください
URL: http://leybreeze.com/blog/wp-content/uploads/2012/02/LifeClock.exe

実行環境:Windows XP/Vista/7

ライセンス:GPLv3

Android用记事本程序 Techo Lite 版本升级 1.6.0

Techo Lite是一款以快速启动和功能精简为特色的Android用记事本软件。设计中所有的考量都是从尽可能减少操作步骤和操作时间出发的。昨天对其做了一个小改进。

关于之前版本的信息,请参见之前的日志

在1.5.0版本中添加了文本的导入功能,可以导入各种字符编码格式的文本文件。由于包含了自动识别文本编码的模块,所以程序的体积增大了些。不过这完全没有影响Techo Lite的快速启动并进入编辑模式的特性。另外修正了以邮件发送文本时日期的月份比实际月份小1的问题。

1.6.0版本的改进之处依然是减少了操作的步骤数和时间,即增加了滑动屏幕切换页面的功能。之前是需要从选项菜单中选择切换功能,需要两次不同位置的按键操作,而现在改为了更为直观的直接左右滑动屏幕切换。

至此,最初设想的Techo Lite的功能都已经实现,没有什么情况的话今后应该不会再增加新功能了。虽然包括这次添加屏幕滑动功能时也都注意到了不同版本系统兼容性的问题,不过不排除今后还会有设备兼容性方面的更新。

事实上之前提到的全功能的记事本Techo的开发已经在进行中,虽然依然只是基于自己的需求而做的设计,不过也正因此有一些其他试用过的记事本类程序所不具备的特性。争取能在这个假期结束前完成第一个可用版本。

Techo Lite的Android Market页面:

https://market.android.com/details?id=org.breezesoft.techolite