/ 最近 .rdf 追記 編集 設定 本棚

脳log[20221020]



2022年10月20日 (木) [Ruby] 以前に max_of メソッドの不在について書いたけど(20210715)、もうひとつ、ことあるごとにリファレンスを探してみてはないなあとがっかりするメソッドが Bignum#flip (Integer#flip)。Bignum って性質としては数値より文字列に近いはずで、だからインスタンスを無駄に大量に保持したり使い捨てにしたりするのが MLE (メモリ使用量過多) や TLE (実行時間過多) の原因になると考えている。いきおい1つのインスタンスを大事に使い回しする使い方になるんだけど、だけど、インスタンスへの作用のさせ方が big |= 1<<k とか big ^= 1<<k になる。|=^==|^ を使ったシンタックスシュガーだとしたらそれも残念だけど(でもそうだよね?)、1 ビットに作用させるためだけに Bignum の一時インスタンスを作成して、桁数に比例したビット演算をさせているのが(たぶん)、もったいなくて仕方がない。リファレンスを漁るけど flip メソッドが見つからない。bitset みたいな特別な道具としてではなく普通の整数で多倍長のビット演算ができるところが、速度で不利になりがちな Ruby が強みにできるところであるので、機会を逃さず Bignum を酷使していきたいと思っている。これは昨日の日記(20221019)への言及。