タグ

Perlとalgorithmに関するsyou6162のブックマーク (2)

  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • Yet Another Hackadelic - 直積の導出と考えうる全ての値を網羅したハッシュの生成

    昨日から激しく悩んでいた内容で、id:kazuhookuさんとnishioさんに色々教わったので、その内容のまとめ。 やりたい事 my $entries = { A => [0..5], B => ["A".."D"], C => ["a".."c"] }; みたいな集合A, B, Cってのがあるとして、A, B, Cから一個ずつ値を抽出してくる組合せを列挙すると言うお話。 ちなみに場合の数として、6 * 4 * 3 = 72 通り存在するハズです。 List::Utilのreduceを使う id:kazuhookuさん案を適当に整形。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use List::Util qw(reduce); my $entries = { A => [0..5], B =>

    Yet Another Hackadelic - 直積の導出と考えうる全ての値を網羅したハッシュの生成
    syou6162
    syou6162 2007/08/16
    組合せの奴はやったことあるわ
  • 1