image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2009年11月18日 | トップページ | 2009年11月20日 »

2009年11月19日

2009-11-19

ピックアップ:液晶保護シートを微塵の混入もなく貼るコツ, avaScript でリアルタイム 3DCG を実現する WebGL , etc...

- http://www.mt4j.org/mediawiki/index.php/Main_Page
> MT4j - Multitouch For Java

- http://www.mwsoft.jp/programming/munou/mecab_dic_perform.html
> IPA、NAIST、UniDic、JUMANの辞書実演比較(Mecab)

- http://weekly.ascii.jp/elem/000/000/013/13760/
> 液晶保護シートを微塵の混入もなく貼るコツ

- http://www.publickey.jp/blog/09/internet_explorer_9html5directxsilverlight_4.html
> [速報]Internet Explorer 9初披露、HTML5対応、DirectXで描画。Silverlight 4は今日からβ公開 - Publickey

- http://webos-goodies.jp/archives/getting_started_with_webgl.html
> JavaScript でリアルタイム 3DCG を実現する WebGL の使い方 - WebOS Goodies

- http://diamond.jp/series/analysis/10125/
> ユーチューブで儲けまっせ! 役所と企業のタッグが生んだ 目から鱗の関西流新IT商法 | News&Analysis | ダイヤモンド・オンライン

- http://kammyplus.seesaa.net/article/133298964.html
> Kammy+'s Space Seesaa出張所: twitterで失態.

- http://lifehacking.jp/2009/11/complete-guide-to-google-wave/
> Google Wave コンプリートガイドの翻訳を始めました | Lifehacking.jp

- http://guideline.livedoor.biz/archives/51342945.html
> 日刊スレッドガイド : 東映のワンピース公式掲示板大炎上「にわか 矢口真里 をワンピに絡ませないでください」

- http://www.tate-lab.net/mt/2009/11/post-143.html
> 「わからない人は質問して下さい」という問いは本当に意味があるか? - tate-lab

- http://gamez.itmedia.co.jp/games/articles/0911/18/news065.html
> あの傑作SF小説が、新たな物語で再び映画化! 「時をかける少女」完成披露試写会 - ITmedia Gamez

- http://president.jp.reuters.com/article/2009/11/18/C883BF5C-D401-11DE-B5F9-FCCF3E99CD51.php
> 「OL内の待遇格差」1000人調査! | その他・必見連載

scala で 8-queen (その2)

ここ数日の勉強を成果で前のプログラムを少し短くすることができた。
(結果を表示する 部分の扱い。配列の値設定、文字列表記生成の部分)

//  See http://booksites.artima.com/programming_in_scala/examples/html/ch23.html#sec2
package scalaapplication

object Queen extends Application {

    val MinQueen = 1 // 1
    val MaxQueen = 4 // 8

    for (size <- MinQueen to MaxQueen ) {
        def print(sols: List[List[(Int, Int)]]) = {
            Console.println(size.toString + " Queen: " +
                            (if (sols.isEmpty) "no solution"
                             else sols.length + " solution(s)"))
            sols.zipWithIndex.foreach( q =>
                Console.println("No." + (q._2 + 1) + "\n" +
                                Board(size, q._1))
            )
        }
        print(solve(size))
    }
    //--------------------------
    def solve(n: Int): List[List[(Int, Int)]] = {
        def placeQueens(k: Int): List[List[(Int, Int)]] = {
            if (k == 0) List(List())
            else
            for {queens <- placeQueens(k - 1)
                 column <- 1 to n
                 queen = (k, column)
                 if isSafe(queen, queens)
            } yield queen :: queens
        }
        placeQueens(n)
    }
    private def isSafe(queen: (Int, Int), queens: List[(Int, Int)]) = {
        queens forall (q => !inCheck(queen, q))
    }
    private def inCheck(q1: (Int, Int), q2: (Int, Int)) = {
        q1._1 == q2._1 ||  // same row
        q1._2 == q2._2 ||  // same column
        (q1._1 - q2._1).abs == (q1._2 - q2._2).abs // on diagonal
    }
    //--------------------------
    case class Board(size: Int, qs: List[(Int, Int)]) {
        private val board = Array.fromFunction((x,y) => qs.exists(_ == (x,y)))(size + 1, size + 1)

        override def toString = {
            var str: String = ""
            for (x <- 1 to size) {
                str += board(x).map(if(_) "*" else ".").mkString(" ") + "\n"
            }
            str
        }
    }
}

最後の toString 中の var や for ループも無くす事ができそうな気がするが...

« 2009年11月18日 | トップページ | 2009年11月20日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク