タグ

コンピュータとalgorithmに関するkyo_agoのブックマーク (5)

  • とても強い計算量クラスのコンピュータとその実現方法 - Qiita

    この記事は武蔵野アドベントカレンダー19日目の記事です。 物理のステートメントはだいぶ雑ですが、計算のステートメントには一応正確さに気を使って書いているつもりです。何か誤りがあった場合は、@iKodackまでご連絡いただけると幸いです。 (2018/12/22に「宇宙破壊コンピュータはセールスマン巡回問題の最適化問題を解けるか? 」「時間遡行コンピュータで無限ループすると何が起きるか?」を記事末尾に追加しました。) (2018/12/28に「宇宙破壊コンピュータは答えが無い場合に全ての宇宙を破壊する?」について記事末尾に追加しました。) 前書き より速い計算機が欲しい、という欲求は全ソフトウェアエンジニア共通であることが知られています。 最近、業務において500GBのSSDや16GBのメモリを最低水準にするべきではないか、という議論がネットで活発になされていますが、生産性を限界まで高める限

    とても強い計算量クラスのコンピュータとその実現方法 - Qiita
  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • 逆算方式による詰将棋の問題生成プログラム - すぎゃーんメモ

    将棋を始めた ので、詰将棋を毎日のように解いているのだけど、せっかくなら詰将棋の問題を自動生成してみたい、と思って試してみた。 前提知識 詰将棋とはどんなものか 攻め方(先手)が玉方(後手)の玉を詰ますのが目的。 攻め方は必ず王手をかける(玉方は必ず王手をはずす)。 玉方は盤上と攻め方の持駒以外すべての駒(ただし玉は除く)を合駒として使用できる。 玉方は最善を尽くし、最も長く手数がかかるように逃げる。 玉方は無駄な合駒をしない。 その他は指し将棋のルール通り。二歩、打ち歩詰め、行き所のない駒、連続王手の千日手はいけない。 (日将棋連盟の詰将棋ページより) 手法 コンピュータによる詰将棋の解答・問題生成というのは20年くらい前から既に様々な論文などで研究されているようだ。生成については、主に「ランダム法」「逆算法」といった方式があるらしい。 あまり論文にちゃんと目を通して調べてはいないけど

    逆算方式による詰将棋の問題生成プログラム - すぎゃーんメモ
  • コンピュータサイエンスアンプラグド

    コンピュータサイエンスアンプラグドは、コンピュータを使わずに情報科学を教えるための学習法です。 カードなどを用いたゲームやグループ活動を通して、コンピュータの基的なしくみを楽しく学ぶことができます。 (日語版の紹介) このサイトではニュージーランドで開発された Computer Science Unplugged を翻訳した内容を紹介しています。今後は、日での実践例や日で開発したアンプラグド教材についても紹介していく予定です。 データ:情報を表す素材 点を数える(2進数) 色を数で表す (画像表現) それ、さっきも言った!(テキスト圧縮) カード交換の手品(エラー検出とエラー訂正) 20の扉(情報理論) ジョニーを探せ(情報理論) コンピュータを働かせる:アルゴリズム 戦艦(探索アルゴリズム) いちばん軽いといちばん重い(整列アルゴリズム) 時間内に仕事を終えろ(並び替えネットワー

  • Bitcoinの何が革新的なのか? - アンカテ

    なんとなくbitcoinがわかったような気がしたので書いてみる。 「P2Pで取引のデータベースを管理する」と聞いて、最初に不思議だったのは、「なぜみんなそれに自分のコンピュータを提供するのだ?」ということだった。 多数のコンピュータで分散処理をしてDBを管理すれば、やり方によっては効率的で確実な管理ができることは想像がつくが、誰がそのコンピュータを提供するのだ? 金がからむとなれば、それは儲けようとしてやる以外に考えられない。 しかし、P2Pというのは、単なる分散処理ではなくて、身元保証の無い分散処理だ。ネットワークを構成するノードの大半のコンピュータの所有者は、どこに住んでいるか誰なのかわからない。それをわかるようにしたら登録制度が必要になり、その登録制度を運用し管理する主体が必要になる。そういうのは普通、P2Pとは呼ばない。 だから、P2Pという限りは、ノードの中に、インチキのプログラ

    Bitcoinの何が革新的なのか? - アンカテ
  • 1