タグ

algorithmに関するyuu-yuikenのブックマーク (16)

  • みんな、とにかくオセロAIを作るんだ - Qiita

    オセロAIってなんか難しそう?そんなことはありません。むしろゲームAIを学ぶ様々なレベルの人にこれ以上ないくらい最適です。この記事ではオセロAIを作ると何が良いのかをひたすら語っていきます。そしてオセロAIをこれから作る人のために参考になりそうな記事をいっぱい貼り付けていきます。 私自身はもうかれこれ1年以上オセロAIにどっぷりハマっています。詳細は以前書いた記事で。 オセロAIをおすすめする3つの理由 1. 原始的なゲーム木探索を学べる オセロは「二人零和有限確定完全情報ゲーム」と呼ばれる種類のゲームです。この名称を説明すると、 二人: 二人で行われる、 零和: どちらかが得をすればもう片方が同じだけ損をする、 有限: 探索すべき範囲(ゲーム木)が有限で、 確定: 手番が一意に定まり、 完全情報: ランダム要素などの予期せぬ情報がない、 ゲーム: ゲームである という意味です。チェスとか

    みんな、とにかくオセロAIを作るんだ - Qiita
  • 遺伝的アルゴリズムでエッチな画像を作ろう!

    おわり 二つの画像のうち、どっちの方がエッチかを選んでください。 世代交代を経るごとに、だんだんとエッチな画像が表示されるようになるはずです。 Choose the lewder one, and you can make them more lewd. You will win when the AdSense on this site is stopped by Google because of "Sexually explicit content". ENGLISH よりエッチな画像を作るために、 ぜひ色んな人に広めてください。 ツイート ・展覧会ページでこれまでの画像を公開しています。 詳しい説明 スポンサーリンク みんなの好みを学習させて、「遺伝的アルゴリズム」によってエッチな画像を自動で作るためのシステムです。 遺伝的アルゴリズムとは、あるデータを目標に近づけるために使われる

    遺伝的アルゴリズムでエッチな画像を作ろう!
  • Merge arrays with overlapping values

    yuu-yuiken
    yuu-yuiken 2020/06/14
    かぶった範囲をマージしていく
  • 2つの期間が重なり合うかどうかを判定する。 - こせきの技術日記

    2つの期間 A〜B と X〜Y が重なっているかどうかを判定したい場合。 のように4つのパターンがある。これを単純に、 A <= X && Y <= B || X <= A && Y <= B || A <= X && B <= Y || X <= A && B <= Yのように判定してはいけない。 Xは青い線の上を、Yは赤い線の上を動くとき、A〜B と X〜Y は重なり合う。この条件は、 X <= B && A <= Yこれで4つのパターンをカバーできる。ORは不要。始点と終点をわかりやすく書くと以下になる。 始点2 <= 終点1 && 始点1 <= 終点2アルゴリズムに名前がありそうな気がするけど、見つけられなかった。 (追記) 矩形の重なり判定の方が情報が見つかった。 * Life is beautiful: ビル・ゲイツの面接試験-私の場合 * 長方形の重なりを判定する問題 - ザ

    2つの期間が重なり合うかどうかを判定する。 - こせきの技術日記
  • 意外と深い「平均」の世界

    2016年4月28日ロマンティック数学ナイト@六木で発表したときの資料です。相加平均,相乗平均,調和平均を一の線で結びます。また,その他にも興味深い平均をいくつか紹介し,それらも別の線で結びます。

    意外と深い「平均」の世界
  • 最強アルゴリズム学習サイト「VisuAlgo」 | ソフトアンテナ

    「VisuAlgo」はソートやサーチなど様々なアルゴリズムをブラウザ上で再現してくれるサイトです。 例えばソートアルゴリズムならば実際に値が並び替えていく様子が画面に逐次表示されていくので、ソートアルゴリズムの特徴を分かりやすく理解することができます。 ついでに画面の横に対応するソースコード(擬似コード?)も表示されるので、プログラムでどう実現すればよいか知りたい人にとっても参考になるでしょう。 ソートアルゴリズム 試しに一番分かりやすいソートアルゴリズムを実行してみます。 ソートアルゴリズムのページを開いて、画面上部でソートの種類を選択し(例: BUBBLE)、次に「Create」でデータを作成、最後に「Sort」から「Go」をクリックすればアルゴリズムを実行することができます。 実行中は、画面真ん中のグラフィックスが随時更新され、画面右側のソースコードもステップ実行されていきます。また

    最強アルゴリズム学習サイト「VisuAlgo」 | ソフトアンテナ
  • 中学生にもわかるウェーブレット行列 - アスペ日記

    id:echizen_tm さんの記事「ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix"」から始まったウェーブレット行列ブームから半年以上が過ぎ、すでに枯れた技術として確立されつつある感があります。 …嘘です。 日以外ではあんまり来ていません。 理由としては、やはりアルファベット圏では単語境界が明確であるため、こちらの記事で書かれているような「キーワード分割の難易度」といったことがあまり問題にならないということがあるかもしれません。 まあ、そういうわけで局所的に来ているウェーブレット行列ですが、日語をはじめとする単語境界のない言語圏にとっては重要なネタであると思うため、解説記事を書き直して*1みようと思います。 ウェーブレット行列でできること 主となる操作は、文字列に対する 定数時間の rank() と select()*2 です。 rank() は、「文

  • プログラミングコンテストでの乱択アルゴリズム

    Introduction to Locally Testable Codes and Related Topics (in Japanese)Nobutaka Shimizu

    プログラミングコンテストでの乱択アルゴリズム
  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
  • Googleアルゴリズム200項目全てを特別公開 – マーケティングブログ

    Googleアルゴリズムの200の要素を発見しましょう!(Let’s Try to Find All 200 Parameters in Google Algorithm) は2009年に書かれた記事ですが、パンダアップデートが適用された今現在(2011年4月)でも重要項目が多く書かれているもので。 多くはGoogleの特許(合衆国特許出願0050071741)に基づいていますが、筆者のアンが自身の解析結果や予測を盛り込んでいる事で、より実践に近い内容になっています。 SEO初心者の方は、これからのウェブ制作の軸に、SEOエキスパートの方はもう一度自身のサイトを見直す目次として確認してみてはいかがでしょうか。 ドメインに関する13要因 ドメイン年齢 ドメイン取得からの長さ ドメイン登録情報(Who is情報)の表示/非表示 ドメイン種類(サイトレベルドメイン(.com や co.uk) ト

    Googleアルゴリズム200項目全てを特別公開 – マーケティングブログ
  • 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ

    動的計画法とメモ化再帰 今回は、非常によく用いられるアルゴリズムである、「動的計画法」「メモ化再帰」について説明します。この2つはセットで覚えて、両方使えるようにしておくと便利です。 なお、メモ化再帰に関しては、第5・6回の連載の知識を踏まえた上で読んでいただけると、理解が深まります。まだお読みになっていない方は、この機会にぜひご覧ください。 中学受験などを経験された方であれば、こういった問題を一度は解いたことがあるのではないでしょうか。小学校の知識までで解こうとすれば、少し時間は掛かるかもしれませんが、それでもこれが解けないという方は少ないだろうと思います。 この問題をプログラムで解こうとすると、さまざまな解法が存在します。解き方によって計算時間や有効範囲が大きく変化しますので、それぞれのパターンについて考えます。 以下の説明では、縦h、横wとして表記し、プログラムの実行時間に関しては、

    最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ
  • アルゴリズムの紹介

    ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意していま

  • 講義資料 配列解析アルゴリズム特論I 情報生命科学基礎/演習 他 -渋谷哲朗

    平成20年度 東京大学大学院 情報理工学系研究科・コンピュータ科学専攻 配列解析アルゴリズム特論I 4/10 4/17 4/24 5/1 5/8 5/15 5/22 5/29 (The problem to be reported - in English) 6/5 6/12 6/19 7/3 7/10 7/17 東京大学 理学部・情報科学科 情報科学特別講義3 (情報科学とバイオインフォマティクス) 6/10 7/15 7/22 東京大学大学院 新領域創成科学研究科・情報生命科学専攻 情報生命科学基礎/演習 5/27 6/17 京都大学大学院 薬学研究科・医薬創成情報科学専攻 情報科学概論 6/3 中央大学大学院 理工学系研究科・物理学専攻 物理学特別講義第二 TBA 創価大学工学部 生命情報工学科 TBA TBA 戻る Copyright (c) 2004- Tetsuo

  • マージ・ソート : 巨大データのソート法:CodeZine

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな:【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。  プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System

  • 「+1」だけで四則演算をするには? ― @IT自分戦略研究所

    プログラミングの基礎となる考え方、アルゴリズムを理解しているだろうか? ITエンジニアに贈る、アルゴリズム入門。 京都の効率的な回り方を考えるのも「アルゴリズム」 「アルゴリズムって何?」。そう聞かれて、皆さんはすぐに答えられますか。ウィキペディアのアルゴリズムの項には、「なんらかの問題を解くための手順のことである」と記載されています(2007年9月時点)。 例えば、皆さんが週末に京都に旅行し、市内を観光するとしましょう。二条城や銀閣寺、東寺など、回りたいと思う観光地がいくつもあります。バスや電車、場合によっては徒歩など複数の交通手段のうち、どれを使ってどういう順番で回れば効率が良いかと考え、時刻表と格闘することになるでしょう。 この場合、観光地の効率の良い回り方が「問題」で、すべての観光地を最短時間で移動する経路を見つけ、効率良く回る手順を考えることが「問題を解くための手順」、すなわちア

    「+1」だけで四則演算をするには? ― @IT自分戦略研究所
  • 1