2012-01-01から1年間の記事一覧

VS2010でLNK1123エラーが出たら、SP1にしてみよう

C++

久しぶりにVisual Studio Express 2010でC++のプロジェクトをビルドしようとすると、以下のビルドエラーが出てビルドできなかった。 LINK : fatal error LNK1123: COFF への変換中に障害が発生しました: ファイルが無効であるか、または壊れています。LNK112…

EclipseでC/C++のコンパイラなどを変更する

以下の方法でOK。 Project Explorerのプロジェクト(フォルダのアイコン)を右クリック Propertiesをクリック C/C++ Build内のTool Chain Editorでコンパイラ、リンカなどのツールチェーンを設定

3TBのHDDのうち746.52GB分に割当てできない問題の解決法

Seagateの3TBHDDを玄人志向 3.5型HDDケースで外付けHDD化。Windowsに接続して「ディスクの管理」からフォーマットしようとしたところ、2048.00GB 分にはパーティションを割り当てることができたのだが、残りの746.52GB 分が未割り当てのままでパーティション…

Androidプログラミングに挑戦

nexus 7を購入してはや数ヶ月、せっかくなので開発にでも挑戦しようと山田祥寛「はじめてのAndroidアプリ開発―Android 4対応版」を購入。序盤で詰まったところをメモ。 開発環境の導入 Android SDKをダウンロードするところで早くもつまづく。本ではAndroid …

凸関数、凹関数

メモ。 convex function = 凸関数 = 高校数学で言う「下に凸」。例: concave function = 凹関数 = 高校数学で言う「上に凸」。例: なんだかとても覚えにくい。個人的にだが、 凸と凹だと、凸の方がメジャーな感じがする とだと、の方がメジャーな感じがす…

CanoScanで同じサイズの用紙を連続してスキャン

電気、ガス、水道料金の用紙をCanoScanでスキャンした。同じサイズの用紙を連続してスキャンするときに高速にできる方法があったのでメモしておく。 MP Navigator EX 4.0を起動 「読み込み」タブから「写真や文書(原稿台)」をクリック 「スキャナードライ…

スリープのショートカット

mac

Command + Option + Eject でOK。参考:Macの起動・スリープ・再起動・終了のキーボードショートカットまとめ(27種類) / Inforati

Acer ASPIRE 5741、classpnp問題からリカバリに至るまでの顛末

AcerのノートPC ASPIRE5741の動作が急激に遅くなる事案が発生。classpnp.sysというシステムファイルが関係していそうだということは分かったけれど、結局根本的な解決はできずリカバリするに至った顛末のメモ。 きっかけ 確か以下のような流れだったと思う。…

ベクトルで微分

備忘録として、ベクトルで微分することの定義をまとめる。ここでは、分かりやすいようにベクトルはすべて3次元とする。 定義 ベクトルの関数を、ベクトルで(偏?)微分することの定義は以下の通り。 例 よくあるのが をで微分するというもの。ここで、は3x3の…

SubversionをMacのコマンドラインから使う

今までWindows + TortoiseSVN + ankhsvn(Visual StudioでTortoiseSVNを使うためのプラグイン)という組み合わせでしか使ったことのなかったSubversion。本当にいまさらだがMacのコマンドラインから使ってみた。 インポートしたいファイルを作成 そもそもSubve…

PCA(Principal Component Analysis)を具体的に計算する

(2013/6/18修正)PCAの計算方法を天下り的に説明します。専門家ではないので誤りが含まれる可能性があることをあらかじめご了承ください。データの例はExample of Principal Component Analysis (PCA).mp4 - YouTubeで使われているものをそのまま流用していま…

emacsでC/C++のスタイルを設定

自分が好むC/C++のスタイルは以下の通り。 インデント幅は4 インデントはタブではなくスペース 制御文の後の中括弧を次の行に置き、制御文と同じ字下げ位置とする 例は以下の通り。 int main() { for (int i = 0; i < 10; ++i) { cout << i << endl; } retur…

Pythonでの正規表現の簡単なまとめ

Pythonでの正規表現の使い方を勉強した。Perlの正規表現とパターンの書き方はほぼ同じのようだけど、その他の部分はかなり違っている。あまり良いページが見つけられなかったので、正規表現 HOWTO — Python 3.3.3 ドキュメントを読んで簡単にまとめた。この…

Emacsで矩形をコピーする方法

Emacsで矩形を操作する代表的なコマンドには以下のようなものがある。 C-x r k カット C-x r y 貼り付け C-x r t 文字列挿入長年の間、矩形をコピーする方法が謎だったのだが、先ほどようやく分かった。その方法は以下の通り。 C-x r r r コピー C-x r i r …

iPhoneの「辞書」アプリにて、英和辞典を引きたいのに国語辞典が優先されてしまう問題への対処法

iOS5からiPhone/iPod touch/iPadで辞書が内蔵されるようになった。この辞書を自由に引くことのできる便利なアプリ「辞書」にはいつもお世話になっている(AppBankの解説記事。ただし、「辞書絶一門」などの同種のアプリも含め、現在ではDL不可のようだ)。し…

Excelで時間の足し算をする

10時0分を表すセルに、1時間30分だけ加えたいときにはTIME関数が使える。 上図のようにTIME関数を使う。1が1時間、30が30分、0が0秒という意味。 時間が計算されて、11時30分になった。注意:B3セルに、=B2+2:00 と書いてもうまくいかない。TIME関数を使わな…

vector2個の積集合を取る

C++

C++ではset_intersection()を使うと積集合をとることができる。ただし、ちょっと使いにくい。後半で紹介する、inserterと組み合わせる方法の方がよさそう。 準備 set_intersection()を使って2つのvectorの積集合を求める前に、それぞれのvectorをあらかじめ…

STLのvectorから同一要素を削除

C++

1つ目の方法は、sortして、uniqueして、eraseする方法。uniqueは、vectorの要素のうち、となり合う同じ要素をまとめて一つにする関数。しかしuniqueを使うだけでは末尾にゴミが残るので、そのゴミをeraseで削除する。覚えるのは少し大変。 #include <vector> #includ</vector>…

swap技法

C++

2012/6/21追記:faith_and_brave様からコメントを頂きました。C++11からは、swap技法と同じことがshrink_to_fit()というメンバ関数でできるそうです。貼っていただいたURLもぜひ御覧ください。コメントありがとうございました。Effective STLで知ったネタ。S…

vectorとsetを相互に変換

C++

STLのvectorとsetは、コンストラクタを使うと互いに簡単に変換することができる。 #include <iostream> #include <vector> #include <set> using namespace std; void printVector(vector<int> &vec){ cout << "size = " << vec.size() << endl; for(int i = 0; i < vec.size(); ++i){ co</int></set></vector></iostream>…

mapのキーにvectorが使える

C++

またSTLネタ。ちょっと意外な感じがするが、実際に試すと確かに使える。 #include <vector> #include <map> #include <iostream> using namespace std; int main(void){ map< vector<int>, int > m; vector<int> vec; vec.push_back(2); vec.push_back(3); vec.push_back(5); vector<int> vec2; vec</int></int></int></iostream></map></vector>…

mapでキーの有無を調べるには、find()よりcount()が便利

C++

mapコンテナ(mとする)でキーの有無を調べる場合、今まではメンバ関数のm.find()を呼ぶ方法を使っていた。m.find()を使う方法では、「m.find()の戻り値がm.end()に等しければキーが存在しない、そうでなければキーが存在する」としてキーの有無を判別していた…

STLのコンテナから要素を削除する

C++

STLのコンテナの種類によって、要素の削除の仕方もいろいろ。 vectorの場合 erase-remove idiomと呼ばれるテクニックを使う。このテクニックでは、特定の値に一致する要素を消すときにはerase()とremove()とを、また特定の条件に一致する要素を消すときにはe…

コードを短くするちょっとした工夫

C++

プログラミングコンテストに参加して他の人のコードを見る機会が増えてから、短くコードを書くノウハウが少しずつ身についてきた。 ループを回しながら最大値を更新 普通に書くと以下のようなコードになる。 int high = 0; for (int i = 0; i < n; ++i){ int…

小数点以下n桁を表示する

C++

Cだと double num = 100.123456789101112; printf("%.10lf\n", num); で簡単に小数点以下10桁を出力できる。だが、C++だとそうはいかない。 #include <cstdio> #include <iostream> #include <iomanip> using namespace std; int main(void){ double num = 100.123456789101112; printf(</iomanip></iostream></cstdio>…

lower_bound(), upper_bound()

C++

いつか制覇しようと思っていたlower_bound()とupper_bound()。C++編(標準ライブラリ) 第18章 並べ替えのアルゴリズムを読むことで理解できた。以下のように考えると分かりやすい。 lower_bound() と upper_bound() はともに、すでに昇順にソート済のコン…

vector同士の比較

C++

2つのvector同士を==で比較すると、すべての要素が同じときtrue、一つでも異なる要素があるときfalseを返してくれるらしいことに気づいた。 #include <vector> #include <iostream> using namespace std; int main(void){ int _vector[] = {3, 5, 7}; vector<int> vec1(&_vector[0],</int></iostream></vector>…

C++の文字列操作 その3

C++

以下、すべて #include <iostream> using namespace std; と書いてあるものとする。 文字列の置換 replace()を使う。取りうる引数はいろいろあるけど、多分一番使うのは以下の例。 string str = "Today is April 19."; str.replace(9, 5, "May"); // strのindex9から5</iostream>…

シェルスクリプトで掛け算

シェルスクリプトで掛け算をしようとして少しはまった。やりたいことは、数字0, 1, 2, ...が与えられた時、数字0, 5, 10,...を出力すること。これはダメな例。 #!/bin/sh for i in {0..10} do num=`expr 5*$i` echo $num // "5*0", "5*1", "5*2", ...が出力…

C++の文字列操作 その2

C++

昨日の続き。以下、すべて #include <iostream> using namespace std; と書いてあるものとする。 文字列中の文字を一文字ずつ走査 string str = "abcde"; for(int i = 0; i < (int)str.size(); ++i){ char ch = str[i]; } 部分文字列の生成 substr()を使う。第一引数で</iostream>…