http://ja.wikipedia.org/wiki/ã¨ã¤ãã»ã¯ã¤ã¼ã³ ããã¼æ©ãã ãã©ããã¨ç¶ºéºã«ã§ããã å帰+lambda渡ãã¯å帰ãå·»ãæ»ããªãã§è¯ãã®ã§æ¸ããããã å¤ãªæ¸ãæ¹ããªãããã«ãããã©20è¡ãã£ãã #!/usr/bin/env ruby def put(size=8, queens=[], &block) block.call(queens) if block and queens.size >= size (queens.empty? ? 1 : queens.last[:x]).upto(size).each do |x| 1.upto(size).each do |y| q = {:x => x, :y => y} next if queens.map{|i| q[:x] == i[:x] or q[:y] == i[:y] or q[:x]+q[:y]
{{#tags}}- {{label}}
{{/tags}}