タグ

computerとmathに関するa2ikmのブックマーク (5)

  • うっかりチューリング完全になっちゃったもの

    Accidentally Turing-Complete ― Andreas Zwinkau 来なら、チューリング完全となるべきではなかったものがある。これは、そのようなうっかりチューリング完全になってしまったものの例である。 C++テンプレート 当初はチューリング完全を目指していなかったが、C++テンプレートはチューリング完全になってしまった。その証明は、この論文にある(PDF) x86 MMU x86のpage fault handlingは、単純なマシンの実装に使える。原理としては、page faultが1 wordをスタックに積み、それによりアンダーフローを起こして別のトラップを生成する。この仕組みは、「減算して0以下ならば分岐」処理を実現する。チューリングマシンを実装するには十分である。デモ動画、講演動画 マジック・ザ・ギャザリング マジック・ザ・ギャザリングはカードゲームであ

    a2ikm
    a2ikm 2020/07/07
    といいつつ、SQLはチューリング完全らしい。
  • 足し算を使わずに足し算する — KaoriYa

    int add(int a, int b) { while (b != 0) { int c = (a & b) << 1; a ^= b; b = c; } return a; } はい。この関数では足し算(演算子)を使わずに、ビット演算とループだけで足し算(加算)を実現しています。いわゆる全加算器ってやつで、これと同じ事が電気回路的に行われるのがCPUにおける足し算(演算子)です。 ざっくり解説しますと、一時変数cには各桁のキャリーを計算しています。キャリーはこんな真偽値表なので、 abc

  • Knuth multiplicative hash が最小完全ハッシュ関数であることの証明 | メルカリエンジニアリング

    こんにちは!サーチチームの @metal_unk です。普段はサーバーサイドエンジニアとして、メルカリの検索を改善する仕事をしています。 メルカリには Be Professional Day という「普段できないことをやろう」をテーマとする日があり、その日は業務に直接関係のないことや、普段は手をつけられないリファクタリングなどがされます。Be Professional Day の様子はこちらで紹介されています。 tech.mercari.com わたしは今回の Be Professional Day で、Knuth multiplicative hash が最小完全ハッシュであることを証明しました。このブログはその証明についての記事です。 「普段できないことをやろう」という Be Professional Day では、証明もアリです。 Knuth multiplicative hash

    Knuth multiplicative hash が最小完全ハッシュ関数であることの証明 | メルカリエンジニアリング
    a2ikm
    a2ikm 2017/08/29
    面白そう。ひさしぶりに∀を見た
  • 新たな最大素数が見つかる | スラド サイエンス

    今まで発見された中で最大の素数という「257,885,161-1」が見つかったそうだ。桁数を数えると 17,425,170 桁になるという (GIMPS のページ、家 /. 記事より)。 GIMPS (Great Internet Mersenne Prime Search) プロジェクトのボランティア達が 36 万 CPU を使い、最大で毎秒 150 兆回の演算を行って発見されたという。48 個目のメルセンヌ素数である。

  • random()とrandom()*random()はどっちがランダムか? | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー stackoverflowで見つけた乱数に関する質問「乱数のランダムさって?」に対する解答が面白かったので紹介します。 乱数のランダムさというのは,沢山標をとったときに,標値がまんべんなく均等に分布する,ということ。プログラミング言語などに組み込まれた乱数を発生する仕組みが返す値が均等に分布してないと,テトリスでなかなか長い棒が落っこちてこなかったりするわけです。 数学的な詳細はともかく,こういう知識はプログラミングをする上で知って置いた方がよいと思います。 さて,質問の内容は random()とrandom()×random()のどっちがランダムなの? というもの。後者はrand

  • 1