2007年6月アーカイブ
このblogでも何度も書いてきていますが、歌を聴くのが大好きです。
家にいるときも、電車の中でも、常に歌を聴いています。
歌を聴きながら眠ります。
だからって、24時間音楽を流し続けているわけにはいきません。
だから、歌を聴いていないときには頭の中で歌を流しています。
脳内スピーカー年中無休常時全開です。
脳内スピーカー曲はその時々によって異なりますが、最近ずっとリフレインされているのが、「もってけ!セーラーふく」という歌です。
らき☆すたというアニメのテーマソングらしいです。
テレビを見る習慣がないので、らき☆すたというアニメは知らないのですが、歌は妙に耳に残ります。
アニメソングというと低評価を受けることが多いように思います。
この歌もばりばりにアニメソングな感じです。
でも、なにげに完成度高いと思いますよ。
アニメソングだからという先入観で避けたりせず、ぜひぜひ聴いてみましょう。
って、この歌、オリコンで2位だったんですね。
そんなに大ヒットしているとは……。
ここ何年もアニメのオープニングやエンディングなど、いわゆる「アニメソング」というものが減って、タイアップ化が進んでいるように思えます。
それ自体を否定する気はないですが、やはり、アニメソングという独特の文化が失われていくのは少し寂しい気持ちだったりします。
(アニメソングを、アニメを見ずに楽しむわたしも、ある意味その文化に逆らっているような気もしますが)
アニメソングは、作品の世界観がこめられていて、ある種の深みを持っているように感じるのです。
それにしても、豚骨ハリガネおかわりだだだってなんでしょうかね?
とても人気がないように思えながらも、実はC言語を目的としてこのblogに足を運んでくださっている方、かなり多いみたいです。
これまでにソートとして挿入ソート、シェルソート、選択ソート、バブルソート、バケットソート(ビンソート)、クイックソートを紹介してきました。
また、フィボナッチ数列や階乗の再帰呼び出しについても書きましたね。
それら過去の記事に興味がある方はC言語のカテゴリーをご覧ください。
前回の最後にて告知しましたように、今回はクイックソートの再帰呼び出しバージョンです。
詳しい説明は省きますが、区間を分割するたびに自身を呼び出す仕組みになっています。
/* クイックソート関数(再帰版)ここから */
/* data[]:データ格納配列 nlef:ソートする範囲の先頭添字 nrig:ソートする範囲の末尾添字*/
void sort(int data[],int nlef,int nrig){
int i , cen , clef , temp;
if(nlef < nrig){
/*区間の中心を基準値として取得*/
cen = (nlef + nrig) / 2;
/*区間の基準値と区間の先頭を交換*/
temp = data[nlef];
data[nlef] = data[cen];
data[cen] = temp;
clef = nlef;
for(i = nlef + 1 ; i <= nrig ; i++){
/*区間の基準値の右に基準値より小さい数値を並べる*/
if(data[i] < data[nlef]){
temp = data[i];
data[i] = data[clef];
data[clef] = temp;
}
}
/*基準値を自分より小さい数値と大きい数値の間に移動する*/
temp = data[nlef];
data[nlef] = data[clef];
data[clef] = temp;
/*基準値より小さい範囲のソート*/
sort(data , nlef , clef-1);
/*基準値より大きい範囲のソート*/
sort(data , clef+1 , nrig);
}
}
/* クイックソート関数(再帰版)ここまで */
常に赤いボールペンと黒いボールペンの二本を持っています。
人に提示するような文書には黒いボールペンを、日記などの私的な文書には赤いボールペンを使っています。
昨日、赤いボールペンをなくしました。
どうやら落としてしまったようです。
少し道を引き返してみたのですが、見つかりませんでした。
かなり都合よい解釈ですが
「新しい気分で今後を歩め」
そんなメッセージかなと考えました。
前に進めるのであれば、そして人に迷惑をかけないのであれば、多少勝手な解釈であってもよいと思うのです。
赤いボールペンをなくしてしまったことは悲しいですが、大切なのは前に進むことです。
青春Bはもうじき一周年です。
さらにさらに、飛躍に飛躍を重ねるような今後をイメージしています。
赤いボールペン、拾ったらメールください。
それまでにもっともっと前に進みます。
自転車を漕いでいるとなにやらガチャガチャ音がする状態が続いています。
なので今日、自転車屋に相談に行きましたら、修理に六千円以上かかると言われました。
八千円の自転車なのに。
二百円で買った鯵を開くのに五千円の包丁が必要みたいなものですよ(意味不明)。
そんな憂鬱な土曜日、修理を断ってガチャガチャ音を立ててコンビニに寄りました。
それで買いましたよ、先月このblogに書いたペプシアイスキューカンバー。
発売直後、mixiの日記キーワードランキングでペプシ一位でしたよね、確か。
かなり話題なんですね。
せっかくの土日だから飲んでみないとね!!
一瞬、モンダミンかと思ってしまう色です。
飲んでみた感想として、思ったよりキュウリキュウリしていないですよね。
確かに風味はキュウリなんですけれども、普通に美味しい飲み物です。
恐がらずにこれを飲んで皆様キュウリラブになりましょう。
とりあえず、ご飯に混ぜてもカッパ巻きにはならなさそうです。
TIMEという雑誌、ご存知でしょうか。
非常に有名ですので「名前ぐらいは」という方も含め、かなり多くの方が知っているかと思います(わたしも名前ぐらいしか知らない人間でございます)。
アメリカのビジネス誌です。
科学、経済、娯楽など、多くの情報を集めた雑誌です。非常に古い歴史を持っています(世界初のニュース雑誌だと聞いたことがあります)。
そのTIMEで「今年もっとも影響力のあった100人」という企画が行われました。
200名がノミネートされ、先日、最終的な100人が選出されたのですが、その中に日本人も二名入っています。
一人はトヨタ自動車の渡辺捷昭さん、もう一人は任天堂の宮本茂さんです。
宮本茂さんの選出を知ったとき、かなり嬉しい気持ちになりました(渡辺捷昭さんの選出ももちろんとても嬉しいですが、それ以上にということです)。
ファミコン世代としては、宮本さんはカリスマ的な存在です。
ファミコンを知らない現代の子どもたちにとっても、Wiiの人気によってやはりヒーローかもしれません。
ポールマッカートニーに食事に招かれた日本人なんて、他にいるのでしょうか?(オノヨーコさんは別として)
マリオ、ゼルダといった人気のシリーズを生み出し、ハードウェアの面においてもスーパーファミコンのLRボタン等の発案者らしいです。
この投票がどれだけの信頼性や価値を持つのか、わたしには詳しくはわかりませんが、それでもこのような勲章が宮本さんに増えたことが(本人が望んでいるかどうかはともかく)、宮本さんに惹きつけられた人間であるわたしとしては非常に嬉しいのです。
本当におめでとうございます。
Shigeru Miyamoto - The TIME 100
The People Who Shape Our World - The TIME 100
Katsuaki Watanabe - The TIME 100
箇条書きをするのに適した油性ペン……のことではありません(ちなみにマジックインキは登録商標だって知っていましたかしら)。
囚人のジレンマ、悪魔の証明に続き、新たに知った言葉を紹介するシリーズでございます。
まずは、以下をご覧ください。
とある二人のプロ野球選手の経歴を箇条書きしたものです。
まあ、名前を伏せても大抵の方は誰を示しているかわかる気がしますが。
プロ野球についての知識を持っていない方は、この二人が非常に似ているような印象を持つかもしれません。
高校野球のスターからプロ野球のスターへと進み、野球へのこだわりを持って現在も舞台を求めて戦い続ける二人……。
某プロ野球選手Aは「桑田真澄」選手、某プロ野球選手Bは「清原和博」選手です。
桑田選手と清原選手を知っている方は「二人が似ている」って印象を持ってはいないでしょう、きっと。
それでも、共通点だけを並べるとまるで二人が似ているような気分になる。
ちょっと例がわかりづらかったかもしれないですが、これを箇条書きマジックと呼びます。
類似点だけ並べると、あたかもその二つが非常に似ているような思い込みをしてしまう。
逆に言えば、箇条書きを使えば相手を情報操作しやすいとも言えます(そんなにうまくいかないでしょうが)。
過去の人とのコミュニケーションを思い出したとき、箇条書きマジックに惑わされたことも箇条書きマジックで惑わしたこともあるように思います。
Wikipediaの箇条書きマジックのページを見ていたとき、これと似た例として、DHMOが挙げられていました。
DHMOがなにか気になりますか。
Dihydrogen Monoxideの略です。とある物質です。
Wikipediaより抜粋しますと「DHMOは依存症を発症させやすい。発症すると毎日少なくとも2リットルは摂取しなければならなくなる。代表的な禁断症状として、猛烈な喉の渇きを訴える例が多く、さらに進むと幻覚を見るようになる。放置すると遅かれ早かれ死亡する。その確率は100%である。」というものです。
詳しく知りたい方は以下のリンクより「Wikipedia DHMO」をご参照ください。
言葉の力って本当にすごいですね。
「メディアが嘘を伝えるのをやめることは真実を伝えることと等しくない」という言葉も同じ類を示していますね。
抜粋や強調をした時点で真実から離れてしまう。
気をつけます、色々と。
Wikipedia 箇条書きマジック
桑田真澄 Official Web Site
オリックス・バッファローズ選手紹介 清原和博
Wikipedia マジックインキ
C言語について書くの、非常に久しぶりですね。
このblogにC言語プログラム目当てで来ている方がありがたいことにけっこう多いようなので、早く書こうとは思ってはいたのですが。
C言語のソート紹介シリーズ、挿入ソート、シェルソート、選択ソート、バブルソート、バケットソート(ビンソート)ときまして、今回はクイックソートについて書かせていただきます。
過去の記事に興味がある方は右側のカテゴリより「C言語」をお選びください。
クイックソートの原理について簡単に説明いたします。
並んだデータの中から一つの基準値を選び、それより大きいグループと小さいグループに分割します。
分割したグループの中でまた基準値を選び、それより大きいグループと小さいグループに分割します。
全体が順番通りに並ぶまでこの繰り返しを続けます。
名前にクイックとついています通り、他のソートアルゴリズムに対して高速だと言われています。
ただし、「平均すれば速い」ということであり「すべての場合について他のアルゴリズムより速い」わけではありません。
小規模な場合やある程度整列が済んでいる場合等、クイックソートが不向きなこともあります。
大規模なデータをクイックソートである程度まで並び替え、それから別のソート方法を使うこともあるようです。
データが「86543271」のときの使用例は以下の通りです。
・中心を基準とする。
「865(4)3271」
・基準より小さいものを左、大きいものを右に移動する。
「132(4)6578」
・基準の左右の中心を新たな基準とする。
「1 (3) 2 」4「 6 (5) 78」
・新たな基準を元に、大小で左右に分割する。
「21 (3)」4「(5) 678」
・まだ並べ変わっていない部分「21」について、基準を設けて左右に分割する。
「1(2)」345678
・完成。
「12345678」
以下、C言語で書いたクイックソートのプログラム例です。
一例であり、また、同一の値が存在する場合を考慮しておりません。実際には基準の取り方を工夫する等して、効率の向上を計ります。
ソートを行う関数部分のみです。
/* クイックソート関数ここから */
/* data[]:データ格納配列 num:配列要素数 */
void sort(int data[],int num){
int i , p , lef[num] , rig[num] , nlef , nrig , cen , clef , temp;
p = 0;
/*左端と右端の添え字を保持*/
lef[p] = 0;
rig[p] = num - 1;
while(p >= 0){
/*現在の区間の左端と右端を取得*/
nlef = lef[p];
nrig = rig[p];
p--;
/*現在の範囲のソート完了と判断してループの先頭へ*/
if(nlef >= nrig)continue;
/*区間の中心を基準値として取得*/
cen = (nlef + nrig) / 2;
/*区間の基準値と区間の左端を交換*/
temp = data[nlef];
data[nlef] = data[cen];
data[cen] = temp;
clef = nlef;
for(i = nlef + 1 ; i <= nrig ; i++){
/*区間の基準値の右に基準値より小さい数値を並べる */
if(data[i] < data[nlef]){
clef++;
temp = data[i];
data[i] = data[clef];
data[clef] = temp;
}
}
/*基準値を自分より小さい数値と大きい数値の間に移動する*/
temp = data[nlef];
data[nlef] = data[clef];
data[clef] = temp;
/*分割した区間のそれぞれの左端と右端を保持*/
p++;
lef[p] = nlef;
rig[p] = clef-1;
p++;
lef[p] = clef+1;
rig[p] = nrig;
}
}
/* クイックソート関数ここまで */
近日中にクイックソートを再帰で書いたプログラムを掲載する予定です。
世の中には不思議なことがたくさんあります。
それは決して遠く大きい不思議の話ではなくて、とても身近なところでの話です。
たとえば、どうしてさお竹屋は潰れないのか(金物屋兼業だから)。
たとえば、どうしてこれまでに一つの消しゴムを使い切った記憶が残っていないのか(実際使い切っていないから)。
たとえば、どうしてつい先日掃除したばかりの部屋がひどく汚れているのか(ただの不衛生)。
たとえば、どうしてつい先日切ったばかりの爪がすごく伸びているのか(ただの不摂生)。
たとえば、どうして傘を忘れたときにだけ雨が降るのか(ただのマーフィーの法則)。
等など、不思議なことだらけの世の中です。
そして、最も代表的な不思議として、どうしてコード類は自ら意思を持っているとしか思えない不可解な絡まり方をするのか(上記写真のような)。
MP3プレイヤーのイヤホンなんかは鞄の中とかシャツのポケットとかに押し込むことがあるからまだ納得なのですが、納得できないのは電話のコードですね。
ずっと同じ場所に置いているのに、ぐるぐるぐるぐる絡まっていきます。
その理由について説明した記事がITmediaに掲載されていました。
簡単に言うと「持ち替えの際に受話器が回転するから」という理由です。
なるほどねという感じです。
もしも詳しく知りたい方は、以下のリンクをクリックくださいませ。
最後は商品宣伝になっていますが、それまでは普通にコードがねじれる現象を説明してくれています。
ITmedia Biz.ID:電話機の「コードねじねじ現象」が発生する理由
電話のコードのねじれ具合って、その人の電話の使用量の尺度になるかもしれないですね。
もしくは落ち着きのなさの尺度とかでしょうか。