タグ

algorithmに関するamnmaのブックマーク (6)

  • javaで総当りアルゴリズムをしたい - 総当りで、配列の値を再帰を使用しすべての順列を取得したいのですがどのよういにすればよろしいで... - Yahoo!知恵袋

    Java の問題ではなく、単なるアルゴリズムの問題ですが、考え方は、 1. 順列から1つずつ順に数字を取っておく。 2. 残りの数字がまだあれば、それに対して再帰的に処理をする。 3. そうでなければ、取っておいた順を1つの解とする。 これだけの話です。なんと「1つずつ取っておく」という処理が要素を交換してくれるので、どこで入れ替えているのか謎という不思議なプログラムになります。ソースを見た方が早いですね。空白が消えてしまうので見辛いですが。 // テスト用, 配列の初期化 public final void test() { int[] right = new int[9]; for (int i = 0; i < 9; i++) { right[i] = i + 1; } int[] left = new int[0]; permutation(left, right); } // 再

    javaで総当りアルゴリズムをしたい - 総当りで、配列の値を再帰を使用しすべての順列を取得したいのですがどのよういにすればよろしいで... - Yahoo!知恵袋
  • 第11回 2進数と10進数のビミョーな関係

    原始,人間は指を折って数を数えた。デジタルの語源であるdigitは「指」を意味する。11以上の数は,ほかの人の手を借りて数えた。要するに桁上がりだ。しかし,コンピュータは人間とは違って2進数で演算処理を行う。そんな「機械と人の数の数え方」について調査した。 2進数だって人間の都合でできている 2進数とは「0または1のどちらかの値しか持たない,数の数え方」だ。コンピュータの処理がこの2進数を基にしていることは,皆さんご存じだろう。なぜ,コンピュータは10進数ではなくて2進数で計算するのだろう? もしかすると,コンピュータの都合で決まっているように見えるかもしれない。 実のところ,0とか1とか2進数とかいった考え方自体もまた非常に人間寄りなものだ。CPUは,自分の扱っているデータが0か1か,ましてや,それに基づく数の数え方が2進数かどうかなんて,みじんもわかっていない。 CPUに判断できるの

    第11回 2進数と10進数のビミョーな関係
  • 404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10

    2007年11月26日18:15 カテゴリMathLightweight Languages プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10 ぎくっ あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな なぜぎくってしているかというと、実はすでにアルゴリズムの発注を受けているからなのだ。いつまでも伏せておくのもなんなので、ここにえいやっとdiscloseしてしまうことにする。 アルゴリズム大募集! C&R研究所 - トップページ その下書きもかねて、そこでも紹介しないわけに行かないメジャーなアルゴリズムをとりあえず10個紹介しておくことにする。 ユークリッドの互除法(Euclidean algorithm) その昔(数百年ほど前)は「アルゴリズム」といえば、「手順一般」を指すのではなく、この「互除法

    404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10
  • ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40

    高校生の時、数学の先生がこう言いました。 ゲームなんて、開発者が作ったルールの上で遊ばれるだけだ。 と。 その時、ゲーマーな自分はこう思いました。 ゲーマーは、開発者が作ったルールの上で遊ばれたい。 と。 というわけで、普段何気なくプレイしているゲームには、どのようなルール(アルゴリズム)があるのか。それを知るために、いろいろなゲームのアルゴリズムなどを解析しているページへのリンク集を作りました。 ほとんどのゲームのアルゴリズムは正式に発表されていないので、ユーザーの手による逆解析だったり、大学の研究による真面目な考察だったりします。(リンク先には、一部アルゴリズムと呼べないものも含まれています) 各種ゲームのプログラム解析 ドラクエ、FF、ロマサガのプログラム解析 DQ調査報告書(リンク切れ) ドラクエの物理ダメージ計算式は質的にどれも同じだが、細かい部分で微妙に違う RPG INST

    ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40
  • 定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup

    このパートでは,プログラミングを勉強するうえで欠かせないアルゴリズムの中でも定番中の定番を紹介します。ソート(並べ替え)やサーチ(検索)などの機能は今では標準のライブラリとして提供されています。実用的なプログラムを作るときにそのものずばりをいちいち書く機会は少ないかもしれません。しかし定番のアルゴリズムは,様々に形を変えて普段のプログラミングに登場します。 解説を読んで仕組みがわかったら,ぜひそれをプログラムにしてみてください。読んだだけではプログラムを書けるようにはなりませんし,プログラムを書いてみて初めて,実は十分に理解できていなかったと気付くことがよくあります。しかもアルゴリズムは特定のプログラミング言語に依存しないので,一度身に付ければ,後でどんな言語を学ぶ場合でも役に立ちます。 1番目から6番目まではソートのアルゴリズム,7番目から9番目まではサーチのアルゴリズムです。一つひとつ

    定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup
  • どうなっているの?あのソフトの仕組み - 今からでも遅くない!アルゴリズム入門:selfup

    Webの全体像を効率よく取り込み,分類する 「YSTのシステムは大まかに三つの機能に分かれます(図2)。最初は世界中のWebページをYSTのシステムに取り込む『クローリング(crawling)』という機能です」(Yahoo! JAPAN,リスティング事業部 検索企画室の宮崎光世氏,以下同)。 取り込むと簡単に言っても,Webページの数は膨大なうえ,更新の頻度や情報の質などがまちまちです。すべてのページに同じようにアクセスしていると非効率なことこの上ありません。そこで,限られた時間で質の良い検索ができるようにするための工夫をしています。例えば,クローリングを繰り返すうちに頻繁に更新されることがわかったページは短いサイクルでチェックし,ほとんど更新のないページはチェックの頻度を落とす,といったことをしているそうです。 ただ,更新の頻度が単に高いだけではダメです。重要性が高いと考えられるWebサ

    どうなっているの?あのソフトの仕組み - 今からでも遅くない!アルゴリズム入門:selfup
  • 1