随想録 2000年10月


10月27日 ビットカウント

最近非常に忙しい。仕事の締め切りや期日まで何日あるのか、指折り数えながら過ごす日々である。

CやC++で数えると言えば、ビットを数えることが頭に浮かぶ。いわゆるビットカウントである。もう少し説明すると、コンピュータの中では、数字は全部0か1で表現されており、その1の数を数えることである。例えば、10進数の22なら、コンピュータ内で10110と表現され、ビットカウントは3となる。

このビットカウントのアルゴリズムはたくさんあり、有名なK&Rの『プログラミング言語C』では2種類が載っていて、以下の通りだ。

K&Rより

int bitcount(unsigned x)
{
    int b;

    for (b = 0; x != 0; x >>= 1)
        if (x & 01) b++;

    return b;
}
K&Rの演習問題になっている高速版

int bitcount(unsigned x)
{
    int b;

    for (b = 0; x != 0; x &= x - 1) b++;

    return b;
}

これら以外でも、以前にインターネットなどを通じて知ったいくつものアルゴリズムがあるが、高速化を行うならテーブル参照が良いかもしれない。また、以下のようなアルゴリズムがあることも知った。

for文一つでビットカウント

int bitcount(unsigned x)
{
    int b;

    for (b = x; x >>= 1; b -= x);

    return b;
}

初めてこのアルゴリズムを見たときは、即座には仕組みが理解できなかった。このようなコードを知るのは嬉しいことである。この日記を読まれている方もどんな仕組みで動いているのか考えてみると楽しめるかも。

10月18日 漢方薬

最近風邪を引いた。この頃、急に冷え込んだので、私のまわりでも風邪を引いている人が多い。私の場合は、喉が痛く、少しばかり熱もあったようだ。引き始めでもあるし、早めに直そうと思い、久々に漢方薬を煎じて飲んだ。飲んだ漢方薬は柴胡桂枝湯である。

ところで、私は大学生の頃、漢方研究部なるクラブで所属していた。まあ、薬学部ならではのクラブであろう。その頃は、今よりもう少し漢方に詳しかったのだが、今ではすっかり忘れてしまった。それでも、この漢方の独特の匂いは忘れないようである。なんだか、この匂いを嗅いでいるだけで効き目がありだ。

この匂いの効果かどうかは定かではないが、数日で風邪は大体治ったようだ。今度、風邪を引いたらまた飲むかな。

10月6日 女尊男卑?

今回のオリンピックでは、日本は合計18個のメダルを取った。そして、そのうち13個は女性が取ったものだ。オリンピックでは初めて女子のメダル数が男子を上回ったらしい。本当に、女性の躍進は目を見張るものがある。

ところで、私は子供の頃、女性は社会に優遇されているのではないかと考えていた。と言うのも、その頃よく見ていたテレビアニメなどでは、必ずと言っていいほど女性は不利な状況に陥らないのだ。つまり、ヨゴレ役はみんな男性なのである。

そして、テレビアニメの例に限らず、デパートでの売り場などでも女性物がかなり占める。もちろん、これは衣料品などの購買力が女性の方が大きいわけで、その点からすればもっともなことなのであるが、子供の頃にはそんなことは思いもしない。

これらのことは、子供が自分たちの触れている世界だけで、すべてを判断していることに起因する。ここでいう世界とは、テレビやデパートなど、子供にとって当たり前で身近な場所のことである。だから、私などは、「女の人は、ずるいな〜。いつもいい目にあってばかりで。大人になったら、男にもいいことあるのかな〜」と子供心に思っていたわけである。

しかし、大人になってみると、確かに就職などで女性の社会的不公平があるのだが、近年ではこのような男女差別を止めようという動きが活発で至る所で目にするようになった。この運動を見ていると、まるで自分が男であること自体、罪であるように感じてしまう。もちろん、このような運動を非難するつもりはないが、歌舞伎で女を出せとか、宝塚で男を出せとか言うようになったら、それは行き過ぎだろう。実際、似た様な事例は多々あるのだが、ここでは深くは追求しない。

つまり、先のオリンピックで例えられるように、女性が強く、男性が弱くなってきたことの原因には、我々の世代の、子供の頃の環境および今の社会情勢があるのだと思う。これは、ある種のマインドコントロールとも考えるのだが、如何なものだろう。



Copyright (C) Noriyuki Futatsugi/Foota Software, Japan.
All rights reserved.
d2VibWFzdGVyQGZ1dGF0c3VnaS5uZXQ=