タグ

programmingとmathに関するbigchuのブックマーク (5)

  • 10日後にソートされる数列

    概要 昼ご飯をべながら唐突に思いついたこのツイート。 投票の4択という制約と、10日というキリの良さが噛み合って面白いかなーと思ってつぶやきました。 これが想定外の展開で盛り上がりを見せ、楽しかったのでまとめてみました。 前提知識 54321という数列の転倒数は10であり、大⇔小のswapを続けていけばちょうど10日でソートされます。 大⇔小であればどこをswapしても変わりません。 逆に、小⇔大のswapが一回でも起きれば10日で終わらなくなります。 出来事 僕の予定では2日目に54321に戻って「完!」という予定だったのですが、意外にもちゃんとソートが始まってびっくりしました。 3日目以降は自分の意志(?)を一切ツイートせずただただ行く末を眺めることに徹していました。 1~4日目 ソートがここまで進んだのも意外でしたが、選ばれた選択肢も意外でした。 僕の予想では「正しくソートされる選

    10日後にソートされる数列
  • Algorithm quickly simulates a roll of loaded dice

    bigchu
    bigchu 2020/06/03
    乱数の進化
  • Floating Point Math

    Floating Point Math Your language isn’t broken, it’s doing floating point math. Computers can only natively store integers, so they need some way of representing decimal numbers. This representation is not perfectly accurate. This is why, more often than not, 0.1 + 0.2 != 0.3. Why does this happen? It’s actually rather interesting. When you have a base-10 system (like ours), it can only express fr

  • 全プログラマーが知るべきレイテンシー数

    Latency numbers every programmer should know — Gist L1キャッシュ参照 0.5ナノ秒 分岐予測失敗 5ナノ秒 L2キャッシュ参照 7ナノ秒 Mutexのロックとアンロック 25ナノ秒 メインメモリー参照 100ナノ秒 Zippy[Snappy]による1KBの圧縮 3,000ナノ秒 1Gbpsネットワーク越しに2KBを送信 20,000ナノ秒 メモリーから連続した1MBの領域の読み出し 250,000ナノ秒 同一データセンター内におけるラウンドトリップ 500,000ナノ秒 ディスクシーク 10,000,000ナノ秒 ディスクから連続した1MBの領域の読み出し 20,000,000ナノ秒 パケットを、カリフォルニア→オランダ→カリフォルニアと送る 150,000,000ナノ秒 Jeff Dean著(http://research.googl

    bigchu
    bigchu 2012/06/03
    : メモしておこう。 / 1Gbpsネットワーク越しに2KBを送信するのに 20,000ナノ秒。ナノ秒は1/1億秒
  • 竹内関数 - Wikipedia

    竹内関数(たけうちかんすう)は、プログラミング言語処理系のベンチマークなどに使われる、再帰的に定義された関数である。 概要[編集] 再帰的に定義される、3個の引数 x, y, z をとる次のような関数である。 特に変わる所は無いがLisp版[1]も参照のこと。定義からわかるように処理を次々にたらい回しにしていくことから、たらいまわし関数[2]、たらい関数 (Tarai function) とも呼ばれる(後述のマッカーシー版との混同を避けるためこの名で呼ばれることのほうが多いが、こちらの定義のほうがオリジナルである。マッカーシー版を特にTak関数として区別する場合もある)。電電公社研究員(当時)の竹内郁雄が、1974年の夏前の頃、後述するような特性のある関数をあれこれ考えていた、ある日の午前に思いついたものである[3]。竹内関数と命名したのは野崎昭弘である[4]。 特性として、他のよくベンチ

    bigchu
    bigchu 2011/08/30
    : ↓ たらいまわしwwww
  • 1