つらつら

  • 実はちょっと期待してたが、それほど甘くはなかった>新書部の話。
  • 昨日のコネタ道場で、参考リンクとして、私のHintMint缶コレクションのページを紹介頂いた。ありがたい事なり。
  • アナグラムが解けた。「まなべかをり」を逆さにしてから1文字分だけ左ローテート(86アセンブラで言えば rol)させたら、「をかべなまり」じゃないですか。訛ってない!
  • 余談だが、記憶領域を用意せずに文字列をn個左ローテートさせるアルゴリズムをご存知だろうか?次の操作を行えばよい。
    STEP1. 先頭のn文字を逆転させる
    STEP2. 残りの文字を逆転させる
    STEP3. 全体を逆転させる
    これで終わりだ。例えば、abcDEFGを3つ左ローテートさせるには、
    STEP1. cbaDEFG
    STEP2. cbaGFED
    STEP3. DEFGabc
    といった具合。これのどこが有り難いか解る人と解らない人がいる(当たり前だ)。
  • さらに余談だが、変数aとbを入れ替える際、一般に変数cを用意して、c=a, a=b, b=c; とやる。これは、XOR演算子 ^ を使って、a=a^b, b=a^b, a=a^b; とやると新たな変数を用意する必要がない。この方法は大抵のアルゴリズム解説本に出ているが、これのどこが有り難いかと言うとそれほどありがたくないような気がする。