タグ

algorithmとtutorialに関するurza358のブックマーク (4)

  • 浮動小数点数型と誤差

    有限桁 C言語で扱える実数値は,2進数の有限小数で表された数値である.例えば次のようなものである. 1.5(10) = 1.1(2) 3.25(10) = 11.01(2) 理論的には小数が無限に続く値でも,そのうちの有限個の桁数でその値を表すしかない. 例えば,0.1 を2進数の小数で表すと 0.1(10) = 0.000110011001100110011...(2) と無限に続くが,コンピュータの内部では有限桁で丸められている. このような場合には,当の値ではなく,近似値でしか表すことができない. 指数表記(浮動小数点表記) 科学計算では非常に大きな実数値や非常に小さな実数値も扱うことがある. そのようなときには,通常の10進数の表記ではなくて,次のような指数表記で表すれば 無駄な 000...000 という桁を表記しなくてもよくなる. 1234567890000000000000

    浮動小数点数型と誤差
  • オーダーを極める思考法

    プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使

    オーダーを極める思考法
  • 探索アルゴリズム:フリーセル解決プログラムにおける手順探索

    フリーセル解決手順のプログラムによる探索実行結果 フリーセル百万種類のゲーム全てに対してサンプルプログラムを実行したところ、おそらく勝てないと言われている 11982、146692、186216、455889、495505、512118、517776、781948 以外のゲームでは勝つことができました。 百万種類のゲームの中で 57148、563096 の二つはコンピュータにとって勝つのが難しい性質を持っています。非常に長い堂々巡りの手順が現れ、およそ四百万局面ぐらいの同一局面判定ができなければ勝てません。また最初の一枚をホームセルへ置くまでの手数が長いので、先読みを長くしなければ勝ち手順を見つけることができないのです。この二つのゲームに勝つために、最大手数を 8,192 (freecell.h : MAX_SEARCH_DEPTH)、同一局面判定上限を 4,194,304 局面 (mov

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1