ひろこま Hack Log

プログラミングや機械学習などの知識を記録・共有します

アルゴリズムとデータ構造

重複が起こらないようにランダムのIDを採番 [Python, Ruby]

重複が起こらないようにランダムのIDを採番 [Python, Ruby] IDをランダムにすると嬉しいこと 何かのシステムを作っていて、ユーザIDや商品IDなどをランダムにしたいことが結構ある。理由は大きく2つある。 IDが小さいとなんかダサい たとえば、あなたの作っ…

Rubyの深いハッシュで、ある要素が未定義かどうかを判定

rubyで深いハッシュを扱うときのコツ 以下のような深いハッシュがあるとする。 x = {a: {b: {c: 1}}} このハッシュに対して、 x[:a][:b][:d] が存在するかどうかを判定したい。 直感的に、以下のようにすれば判定できそうだ。 x[:a][:b][:d] 結果は nil が返…

Pythonのリストでキューを実現する方法

画像出典:https://1000ya.isis.ne.jp/1532.html 単純な方法(appendとpop) Pythonのリストを使ってキューを実現するにはどうすれば良いでしょうか? 単純な方法として、リストのappendとpopを使う方法が考えられます。 append(x)でリストの末尾にxを追加、…

【数学パズル】末尾に同じ数が777個連続する階乗は存在するか

画像提供:https://human-illustration.com/01-emotion-picture/043-free-silhouette.html 先日、いろんな数の階乗について調べていて「とある面白い性質」に気づいたので数学の問題にしてみました。難易度的には高校数学ですが、中学生でも鋭い子なら解ける…

Koma Hirokazu 's Hacklog ―― Copyright © 2018 Koma Hirokazu