タグ

ブックマーク / antimon2.hatenablog.jp (5)

  • 5進化10進数の話。 - 名古屋で数学するプログラマ(仮)

    ご無沙汰してます。 前置きはばっさり省略して。 CodeIQ の大人気問題ダンジョンシリーズの「そろばんのダンジョン」という問題がありまして。 大人気ダンジョンシリーズ!そろばんのダンジョンLV1~LV2の解説+最短コード発表 #javascript|CodeIQ MAGAZINE LV1の解答例として、私の投稿した解答も紹介されていたのですが。 「すごかったです。」としか書かれていなくて何の解説もされていないので。 別にすごくないよー、ちょこっと数学使ってるだけだよー、と言いたくて。 軽くぱぱーと解説記事を書きます*1。 まず2進化10進数について。 まずは、タイトルの意味が全く分からない方のために。 割と有名な*2概念として、2進化10進数というものがあるので、そちらを先に軽く解説。 簡単に一言で言うと、「10進数の各桁を2進数4桁で表したもの」です。 詳しくは↓参照。 二進化十進表現

    5進化10進数の話。 - 名古屋で数学するプログラマ(仮)
    sucrose
    sucrose 2015/01/31
  • CodeIQ の「カードゲームの役判定」問題 by @Nabetani - 名古屋で数学するプログラマ(仮)

    なんか最近 CodeIQ の話ばっか書いているような気がします(^-^; ここ最近、少し余裕が出来たときにちょこちょこ目についた問題を解いて投稿したりしています。 その中の一つ。カードゲームの役を判定する。 先日フィードバックが来た*1のですが、なんか「antimon2 様の評価は『完璧』」とか「今回のベストアンサーだと思います」とか言われちゃいましたヾ(〃∇〃)ノ そんなたいそうなものではなく、Ruby のメソッドを駆使して見た目シンプルに(ただし決して効率の良くない)コードを書いただけなのですが。 まぁせっかくなので、公開しちゃいます。 問題のおさらい すでに締め切られているのでサイトを見ても問題は見えないと思いますので、簡単にどんな問題だったのか、概要を記述しておきます。 使用するのは、通常のトランプのカード52枚です。以下、"S", "H", "D", "C" はそれぞれ「スペード

    CodeIQ の「カードゲームの役判定」問題 by @Nabetani - 名古屋で数学するプログラマ(仮)
    sucrose
    sucrose 2013/10/15
  • もっと「クロッシング問題」(=転倒数計算問題) - 名古屋で数学するプログラマ(仮)

    一昨日 の続き。 通称「クロッシング問題」(実質「転倒数計算問題」)について、結城 浩 氏からフィードバックが届きました。 (解答投稿した人しか見られないらしいのでURLとか貼れませんのでご了承ください) その中で、こちらの想定していたアルゴリズム以外のものが紹介されていたので、ちょっと試してみました。 改めて、転倒数計算アルゴリズム 結城氏の紹介していたアルゴリズムは、以下の 3+1 つでした。 ナイーブな方法(=バブルソートと同等の素朴な方法、計算量 O(n2) マージソートを使う方法(計算量 O(n log n)) 転倒表(逆転表)を使う方法(計算量 O(n log n)) (おまけ)BIT を利用する方法 最後の「BIT を利用する方法」を(おまけ)と表記したのは、結城氏は想定しておらず「皆さんの解答でこんなのを利用したものがありました」という紹介をされていたからです(サンプルコー

    もっと「クロッシング問題」(=転倒数計算問題) - 名古屋で数学するプログラマ(仮)
    sucrose
    sucrose 2013/09/25
  • 続・文字と数値リテラルを使わない Hello World 考 (in Ruby) - 名古屋で数学するプログラマ(仮)

    先日の続き。 解答集サイトを見ていて、他にもこういう解き方があるな、と色々発見があったので、引き続き Ruby で、先日のとは全く違う方向性の別解をまたいくつか。 関数指向の解答 所謂「関数型言語」での解答例は、もちろん関数(もしくはラムダ式?)を定義してそれを組み合わせることで目的の数値を算出するパターンです。 この方法、別に関数型言語でなくても実現可能ですよね。 ということで。Ruby に翻訳してみました。 関数は Ruby のラムダ式で表現。わー見事にカッコだらけですね(^-^; Ruby のラムダはカッコが省略できない(fn[], fn.(), という書き方の場合)ので、どうしてもこうなってしまいます。 なんか Ruby っぽくないなー、と思ってしまいますが。 別に関数をラムダ式で書かなくても良いんですよね。 メソッドの書き方でも今回は充分だし、そうすればある程度カッコを省略できま

    続・文字と数値リテラルを使わない Hello World 考 (in Ruby) - 名古屋で数学するプログラマ(仮)
    sucrose
    sucrose 2013/09/25
  • 文字と数値リテラルを使わない Hello World 考 (in Ruby) - 名古屋で数学するプログラマ(仮)

    CodeIQ の大人気問題「Restricted Words」が、ついに解答締切となりました。 この問題は「数値・文字・文字列リテラルを使用せずに、"Hello World" と出力する」というもの。 解答締切と共に、出題者から解答集が公開されました。 解答集を公開します https://t.co/fd418ZJrAp:挑戦者求む!Restricted Words by @cielavenir http://t.co/6uourFB4uJ @codeiqさんから— しえる (@cielavenir) 2013, 9月 19 色々な言語の解答が載っていて、見ているだけで楽しいですね(^-^) さて、でもここにのっている解答は、基、以下のパターンです。 キーワードや配列リテラルを利用して、そのサイズ(や length 等)から数値を生成する。 数値から文字を生成する。 でも最低条件は、「数値

    文字と数値リテラルを使わない Hello World 考 (in Ruby) - 名古屋で数学するプログラマ(仮)
    sucrose
    sucrose 2013/09/25
  • 1