Programming

Oracle Master (11g Silver) を受験して合格した

スコアシートの他、こんな感じで英文の合格証書、和文の合格証書、カードなどが国際郵便で送られてきました。

oracle master

勉強法としては、オラクルマスターはシルバーまでなら、書籍を読んで演習問題を解いておけば余裕で独学で合格できると思います。私の場合、SQL 0.5ヶ月、Bronze DBA 1 ヶ月、Silver DBA 1 ヶ月くらいのペースで取得できました。

【オラクル認定資格試験対策書】ORACLE MASTER Bronze[Bronze DBA 12c](試験番号:1Z0-065)完全詳解+精選問題集 (オラクルマスタースタディガイド)
エディフィストラーニング 飯室 美紀 西 昭彦 岡野 友紀
SBクリエイティブ
売り上げランキング: 21,582

【オラクル認定資格試験対策書】ORACLE MASTER Bronze[12c SQL基礎](試験番号:1Z0-061)完全詳解+精選問題集(オラクルマスタースタディガイド)
エディフィストラーニング株式会社 西 昭彦 飯室 美紀 鈴木 佐和 岡野 友紀 矢島 祐子
SBクリエイティブ
売り上げランキング: 19,488

【オラクル認定資格試験対策書】ORACLE MASTER Silver[Silver DBA11g](試験番号:1Z0-052)完全詳解+精選問題集 (オラクルマスタースタディガイド)
エディフィストラーニング株式会社 鈴木 佐和 飯室 美紀 岡野 友紀 西 昭彦
ソフトバンククリエイティブ
売り上げランキング: 74,747

Tsukuba.R#7 で RWebUI について話してきました

Tsukuba.R#7 – Tsukuba.R – livedoor Wiki(ウィキ)
Tsukuba.Rはつくば周辺(半径40万キロくらい)をターゲットとしたGNU RおよびR言語の勉強会です。

レポート:「Tsukuba.R#7」活動報告|gihyo.jp … 技術評論社
Tsukuba.Rは,奇数回を都内,偶数回をつくばで行うのが慣例となっており,第7回の今回は東京大学理学部での開催となりました。

5/9 (日) に、統計分析環境 R ユーザーのための勉強会、Tsukuba.R#7 のLT (Lightening Talks) で発表してきました。内容は、Webブラウザからサーバ上の R を実行するインターフェース (というか Web アプリ) の、RWebUI を紹介しました。
今回は、技術評論社様の協力で高品質な Ustream 中継が行われました。ありがとうございます。

Tsukuba.R#7 Vol.8, Tsukuba.R#7 Vol.8 gihyojp on USTREAM. Conference
・発表資料 (PDF) : Presentation (Tsukuba.R#7 @ Tokyo, 2010.05.09)
RWebUI は、以下のような機能があり非常に便利で有用なアプリケーションです。
・プロジェクト管理機能、複数人での作業支援
・ソース+へルプ+実行結果の同時表示
・R 専門検索エンジン、seekR との連携
・強力な編集機能
・サーバの状況をリアルタイムで表示
・iPhone, iPad 対応
・計算終了時に Twitter やメールでお知らせ
・日本語・英語をはじめ幅広くの言語に対応
RWebUI はまだ全く実装していないのですが、会場や Twitter、懇親会などで予想していた以上に反応が大きくて驚きました。ちなみに、まだ未完成のソフトをあたかも完成しているかのようにハメコミ画面の機能紹介で釣っておいて、「みなさんで頑張って開発しましょう」と締めくくる一連のプレゼン手法は、Firefox Developer’s Conference 2009 での yumilcy 氏の LT のパクリです。
開発に協力して頂ける方は、ぜひ私まで、メールか Twitter か Skype で連絡ください。アドバイスや新機能の提案、バグレポートなども歓迎ですので、よろしくお願いします。

<関連リンク>

Tsukuba.R#7 – Tsukuba.R – livedoor Wiki(ウィキ)
tsukuba-r7 on USTREAM: Tsukuba.R#7
RWebUI
RWebUI official (RWebUI) on Twitter
RWebUI | Get RWebUI at SourceForge.net
発起人の @syou6162 先生, 運営の @wakuteka さん, @yag_ays さん, @y_benjo さん, @mickey24 さん、ありがとうございました。また、発表者の皆さん、会場にお越しくださった皆様、Ustream 経由でご覧になった皆様、お疲れ様でした。

行列式の値の求め方、逆行列の作り方の C 言語プログラム

なぜかこの時期に「行列式の値」と「逆行列」を作成するプログラムを毎年書いている気がして、その都度作るのが非常に面倒臭いので、今後も困らないようにアップしておく。
行列式の値の求め方
・2 次の場合
たすきがけで簡単に解ける。

double a[2][2]={{1,2},{4,-1}};
double det=0.0;

det=a[0][0]*a[1][1];
det-=a[0][1]*a[1][0];
printf("%f\n",det); // -> -9.000000

・3 次の場合
サラスの方法で簡単に解ける。

double a[3][3]={{1,8,9},{-3,2,1},{4,1,5}};
double det=0.0;

det=a[0][0]*a[1][1]*a[2][2];
det+=a[1][0]*a[2][1]*a[0][2];
det+=a[2][0]*a[0][1]*a[1][2];
det-=a[2][0]*a[1][1]*a[0][2];
det-=a[1][0]*a[0][1]*a[2][2];
det-=a[0][0]*a[2][1]*a[1][2];
printf("%f\n",det); // -> 62.000000

・4 次以上の場合
通常の計算では 3×3 以下の余因子行列を作成して、符号を掛けた上で足し合わせるやり方を使うと思う。
これをプログラムで実装するには、再帰または多段ループが必要になり計算量も多い。
特に 5 次以降になると面倒。
でも、上三角行列を作って、対角部分 (左上から右下) を掛け合わせれば、簡単に行列式の値を求めることができる。
このやり方だと非常に簡単。

double a[4][4]={{2,-2,4,2},{2,-1,6,3},{3,-2,12,12},{-1,3,-4,4}};
double det=1.0,buf;
int n=4;  //配列の次数
int i,j,k;

//三角行列を作成
for(i=0;i<n;i++){
 for(j=0;j<n;j++){
  if(i<j){
   buf=a[j][i]/a[i][i];
   for(k=0;k<n;k++){
   a[j][k]-=a[i][k]*buf;
   }
  }
 }
}

//対角部分の積
for(i=0;i<n;i++){
 det*=a[i][i];
}

printf("%f\n",det); // -> 120.000000

逆行列の求め方
何といってもやはり掃き出し法が簡単。2 次から n 次まで対応。
掃き出し法の他に、LU 分解で解く方法もあります。

double a[4][4]={{1,2,0,-1},{-1,1,2,0},{2,0,1,1},{1,-2,-1,1}}; //入力用の配列
double inv_a[4][4]; //ここに逆行列が入る
double buf; //一時的なデータを蓄える
int i,j,k; //カウンタ
int n=4;  //配列の次数

//単位行列を作る
for(i=0;i<n;i++){
 for(j=0;j<n;j++){
 inv_a[i][j]=(i==j)?1.0:0.0;
 }
}
//掃き出し法
for(i=0;i<n;i++){
 buf=1/a[i][i];
 for(j=0;j<n;j++){
 a[i][j]*=buf;
 inv_a[i][j]*=buf;
}
for(j=0;j<n;j++){
 if(i!=j){
  buf=a[j][i];
  for(k=0;k<n;k++){
   a[j][k]-=a[i][k]*buf;
   inv_a[j][k]-=inv_a[i][k]*buf;
  }
 }
}
}
//逆行列を出力
for(i=0;i<n;i++){
 for(j=0;j<n;j++){
  printf(" %f",inv_a[i][j]);
 }
 printf("\n");
}

/* 出力
2.000000 2.000000 -1.000000 3.000000
-4.000000 -5.000000 3.000000 -7.000000
3.000000 4.000000 -2.000000 5.000000
-7.000000 -8.000000 5.000000 -11.000000
*/

プログラムは Microsoft Visual Studio 2008 および Fedora 9 の gcc で実行確認済み。
手元に Linux のマシンがなかったので、稼働中の Web サーバを使って動作確認した。

最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド
SBクリエイティブ (2013-08-14)
売り上げランキング: 79,620