約 3,280,378 件
https://w.atwiki.jp/yaruhara/pages/61.html
敵の移動アルゴリズム 敵の移動アルゴリズムこれは何? パックマン 追跡型 迎撃(先読み)型 逃走型 待ち伏せ型 間合い確保型 直角移動型 評価値計算型 参考 これは何? ここでは敵をどのように移動させるかについて書いたものです。 パックマン パックマンでは、プレイヤーを囲むような敵のアルゴリズムを構築するために、 追跡タイプ 迎撃タイプ プレイヤーと点対称に動くタイプ ランダムに動くタイプ という4つのアルゴリズムを用意したそうです。 追跡型 プレイヤーを愚直に追いかけるタイプです。 このタイプは、単純ながらもゲーム的にかなり有効だったりします。 それは、 「耐久力が高い」または「数が多い」場合にゴリ押しできる というメリットがあるからです。 例えば、ピンクスウィーツのステージ4では、 プレイヤーを誘導する耐久力の高い敵や、 高速で大量に発射される誘導弾が飛び交うため、 何も考えずローズクラッカーを連発しているだけでは、 すぐにやられてしまいます。 ただ、行動パターンを読みやすいため、 待ち伏せ をされるとあっさりやられてしまいます。 また、 狙った場所に誘導しやすい ということもあります。 (つまり、ピンクスウィーツの例では、攻略するには敵をうまく誘導する必要がある) 実装方法は簡単です。 プレイヤー座標から敵座標を引いて(P )、 P1(プレイヤー座標)-P2(敵座標)=P P を正規化し(||P ||)、移動量をかけてやれば求めることができます。 追跡移動量=||P || × 移動量 迎撃(先読み)型 迎撃とは、プレイヤーが数フレーム後に移動するであろう座標を、 先読みして、そこに移動するタイプです。 追跡型よりも、行動パターンが読みにくいのが特徴です。 ですが、プレイヤーが全く移動しないと、 追跡と同じ移動量になるので、 結局、待ち伏せには弱かったりします。 実装方法です。 手順は、 プレイヤーと敵の相対速度(Vr)を求める プレイヤーと敵の相対距離(Sr)を求める |Sr|÷|Vr|で接近時間(Tc)を求められる となり、Tcから、 プレイヤー座標+プレイヤー移動ベクトル×Tc により、迎撃ポイントを算出することができます。 念のため式を書いておくと、 プレイヤーの現在座標をSp プレイヤーの移動ベクトルをVp 敵の現在座標をSe 敵の移動ベクトルをVe とすると、 Vr=Vp-Ve Sr=Sp-Se Tc=|Sr|÷|Vr| 迎撃ポイント=Sp+Vp×Tc となり、 迎撃移動量=||迎撃ポイント-敵座標||×移動量 となります。 逃走型 追跡型の移動ベクトルを逆にするだけ。 あんまり使い道はなさそう。 待ち伏せ型 普段は隠れていて、プレイヤーと敵との距離が「ある一定の値以内」となった場合に、 追跡・迎撃型となるタイプです。 強力な攻撃力を持つ敵がこのタイプである場合、対処が非常に困難になります。 間合い確保型 プレイヤーと敵との「距離を常に一定」に保とうとするタイプです。 プレイヤーの有効な攻撃範囲に入らず、 敵の有効な攻撃範囲であるギリギリの距離を保たれると、 たぶん、倒せません(´Д`; 直角移動型 プレイヤー座標と敵座標を結んでできた線から直角の方向へ移動するタイプです。 固定画面シューや全方向シューなどで、 プレイヤーとの距離をとりながら、遠距離攻撃をするような敵に向いています。 また、この移動量を毎フレーム求めてやると、プレイヤーの周りをぐるぐる回る といった動きになります。 移動量の求め方は、 相対距離のベクトルから角度を求めて90°を加算・減算したり、 ベクトルをZ軸まで拡張して、法線ベクトル(0, 0, 1)をかけても求めることができます。 評価値計算型 評価値の高いスペースを狙うタイプです。 例えば、シューティングでは画面の中心は弾を避けやすいため、 プレイヤーは中心に移動しようとします。 そこを狙います。 また、アイテムがあるとプレイヤーはそれを取りに行こうとします。 そこを狙います。(嫌な敵だ、、(´Д`; 参考 ゲーム開発者のためのAI入門 ゲームのアルゴリズム~思考ルーチンと物理シミュレーション
https://w.atwiki.jp/ne18-8community/pages/4.html
アルゴリズム的思考法 ◆講義内容 アルゴリズミィな思考回路を養うことが目的。単位を落とすものが多いらしい。 各月ごとの講義内容 5月
https://w.atwiki.jp/hmiku/pages/30750.html
【検索用 あるこりすむのにわ 登録タグ 2011年 VOCALOID あ あさぎり 初音ミク 宮沢もよよ 曲 曲あ】 + 目次 目次 曲紹介 歌詞 コメント 作詞:宮沢もよよ 作曲:宮沢もよよ 編曲:宮沢もよよ イラスト:あさぎり 唄:初音ミク 曲紹介 曲名:『アルゴリズムの庭』(あるごりずむのにわ) 宮沢もよよ氏 のVOCALOID処女作。 QUADROPHENIA のCD『Ofeq』収録曲。 歌詞 (作者ブログより転載) 浮かぶ鉄も歪(ひず)むビルも 群れる虫も割れる木々も聴いたけど 夕暮れに世の終わりに割れる赤い空 何億の生きる死ぬが果てしなく滑稽だよ 耳を貸さず進む生態系 金属の獣軋む廻る踊るカタストロフィ 床に生える虹のシャンデリア 未だ鳴らぬベルは遠く記憶素子の奥の奥まで 繋ぐ続く既知と未観測地 翼だけの鳥がただ笑っている 君の名前も街の景色も私の声も記憶とその意味も Uh 揺れる揺れる揺れる この星の 夜明け夜明け夜明けを待つ Uh 暮れる暮れる暮れる幻の その手その手その手を抱く Uh 揺れる揺れる揺れる大地に この手この手は咲く Uh 暮れる暮れる暮れる大地に その手その手を待つよ コメント 好き -- 名無しさん (2014-11-12 20 57 40) CDが欲しい。でももう手に入らない。BandcampでDL -- 名無しさん (2015-02-20 06 20 35) 名前 コメント
https://w.atwiki.jp/projecthikky/pages/129.html
木の直径 木の最遠頂点間の距離を木の直径といいます (木構造の2頂点間の距離で最も距離の長い頂点のペアを1つ見つけるアルゴリズム?) 競プロの問題 → 木の直径 Spaghetti Source - 木の直径 http //www.prefield.com/algorithm/graph/tree_diameter.html ABC019のD問題の解説に木の直径の説明がある https //www.slideshare.net/chokudai/abc019 木の直径を求めるアルゴリズムの証明 - あんまり見ないでください http //artak.hatenablog.com/entry/2014/02/20/114126 英語 (全ての木に使えるアルゴリズムと2分木にだけ使えるアルゴリズムがあるっぽい?) Diameter of a tree using DFS https //www.geeksforgeeks.org/diameter-tree-using-dfs/ Diameter of a Binary Tree https //www.geeksforgeeks.org/diameter-of-a-binary-tree/ Diameter of a tree in O(n) http //tech-queries.blogspot.jp/2010/09/diameter-of-tree-in-on.html Find the diameter of a binary tree - Algorithms Tutorial http //www.csegeek.com/csegeek/view/tutorials/algorithms/trees/tree_part13.php https //cs.stackexchange.com/questions/22855/algorithm-to-find-diameter-of-a-tree-using-bfs-dfs-why-does-it-work Youtube(英語) Diameter of a Binary Tree (Code/ Algorithm) https //www.youtube.com/watch?v=ey7DYc9OANo Diameter of a Binary Tree | GeeksforGeeks https //www.youtube.com/watch?v=zUgxaZApKWA Diameter Of Binary Tree(Basic Approach) - C++ https //www.youtube.com/watch?v=rrb__sKNgQQ Diameter Of Binary Tree(Better Approach) - C++ https //www.youtube.com/watch?v=GJg2EYolN-E
https://w.atwiki.jp/tokina/pages/79.html
チーム分けアルゴリズム どうすりゃいいんでしょうか。いくつか考えてみる。 問題 N人のプレイヤーがN/2人ずつ2チームに分かれる それぞれのプレイヤーはランクR(数値)を持っている なるべく2チームのランク合計それぞれS1とS2を近い値にする 解答 その1:ドラフト形式 今現在使われている方法。手順を次に示す。 まずN人の中からランクが一番高い2人を選出 2人をそれぞれのチームのリーダーとする 残りのメンバーで一番ランクの高い1人を選び、S1とS2のうち低い方のチームにその人を入れる(残りメンバーが居なければ終了) 残りメンバーが1人になるまで、残りメンバーから一番ランクの高い2人を選出し、人数の少ない方に入れる 残りメンバーが1人になったらメンバーが少ないチームにその人を入れる 例: メンバー 9 8 8 8 7 7 7 6 6 1 手順1. Team1 9 Team2 8 残り 8 8 7 7 7 6 6 1 ↓ 手順3. Team1 9 Team2 8 8 残り 8 7 7 7 6 6 1 ↓ 手順4. Team1 9 8 7 Team2 8 8 残り 7 7 6 6 1 ↓ 手順4ループ. Team1 9 8 7 6 6 Team2 8 8 7 7 残り 1 ↓ 手順5. Team1 9 8 7 6 6 計36 Team2 8 8 7 7 1 計31 残り なし メリット: アルゴリズムが簡単でそれっぽいチーム分けになる デメリット: 平均値から大きくずれる場合がある(特にランクが他のメンバーより極端に差がある人が奇数人数居る場合→つまり例の場合)
https://w.atwiki.jp/hmiku/pages/16378.html
こいのあるごりずむ【登録タグ CD CDこ クヌースPCD 全国配信】 前作 本作 次作 - 恋のアルゴリズム Maybe,誰よりも クヌースP 発売:2011年5月25日 価格:¥600 / 1曲¥150 流通:配信 レーベル:KarenT ジャケットイラスト:なのえ iTunes Storeで購入する 紹介 クヌースPの1stアルバムとなる、配信アルバム。 クヌースPの恋の歌を6曲厳選したアルバム。 KarenTレーベルよりダウンロード販売が行われている。 曲目 恋のアルゴリズム (feat. 初音ミク) ワタシアナライザー (feat. 初音ミク) ワタシをアサインして (feat. 初音ミク) 恋スル乙女ハ弾丸ライナー(フルバージョン) (feat. 初音ミク) 冬の魔法 (feat. 初音ミク) シークレットバレンタイン (feat. 初音ミク) リンク 作者ブログ KarenT:「恋のアルゴリズム」 コメント 名前 コメント
https://w.atwiki.jp/charolles/pages/25.html
画像圧縮アルゴリズム 参考サイト http //fussy.web.fc2.com/algo/algo8-1.htm ランレングス法(連長法) 「同じ色が連続する長さ」を符号化する方法 白白白黒黒赤白赤だったら白3黒2赤1白1赤1という書き方にする PIC圧縮法
https://w.atwiki.jp/opu_mis/pages/25.html
データ構造とアルゴリズム -第一回レポート- データ構造とアルゴリズム -第二回レポート- 過去問ですよー
https://w.atwiki.jp/reimeioyaji/pages/47.html
運動会でアルゴリズム体操 計画概要 時期:2008年10月11日(土) 内容:運動会におやじ有志として参加し、アルゴリズム体操を踊る。 アルゴリズムこうしんロングバージョン作成しました。(9/16) クリックすると曲が聴けます。音が出るので仕事中の人は注意! だめな場合はWindowsであれば[右クリック]→[対象をファイルを保存]でPCに保存してから聴いてください(MacはCtrl+クリックだっけ?)。 ユーザ名、パスワードはいつもの通り。 行進ノーマル(2回繰り返し) 行進 通常の2倍(4回繰り返し) 行進 通常の3倍(6回繰り返し) 行進 通常の4倍(8回繰り返し) 9/15 第1回練習結果&メモ(9/16 update) 体操のポイント基本は二人一組で、「右の人」役と「左の人」役を分けておく。当日はペアが入れ替わっても、右と肥左がそのままであれば問題なし 当日参加の人は、右左どちらでもできるようにしておいてもらう?前ならえ大きく前ならえ 左向きから開始(左の人…手を腰、右の人…前ならえ) 手を横に~最初…右の人が左に手を振り、左の人は頭を下げる ぐるぐるペアで向き合う(顔は正面を見る) 外側の手(右の人…右手、左の人…左手)を回す 右の人…時計回り、左の人…反時計回りに回す 右が下位置から、左が上位置から回すのを開始する パッチン、ガシン<右の人>上から下→下から上の順 正面→右→後ろ→左 <左の人>下から上→上から下の順 正面→左→後ろ→右 ※ガシンの際は、手は常に「右→左」の順 行進のポイント常に、足を揃えてから各動作をする前ならえ→小さく前ならえ えらい人→やや大袈裟に ペコリンコ→左回りで後ろを向いてペコリンコ 横に歩いてキョロキョロ→ペコリンコの後ろ向きの状態から右横を向いて一歩横歩き、横向いたまま「キョロキョロ」 平泳ぎ→手で平泳ぎと同時に両膝を曲げること 栗拾い→右手で拾って顔の位置まで持ってくること 空気入れましょ→右足でポンプを踏む 空気が入って→やや大袈裟に 構成など行進→体操の順で行う 行進二列になって入場門からスタート 木の手前で二手に別れる(それぞれの列が、園児席の前を通っていくように)⇒行進をロングバージョン化して、できるだけ一列で行う方向 体操入場門から事務所側までの対角線上に一列で並び、木を中心に向きを反転する 開始時…一人「アルゴリズム体操!」→全員「アルゴリズム体操!」 終了時…一人「アルゴリズム体操終わり!」→全員「アルゴリズム体操終わり!」→走って退場 衣装おやじTシャツを持っている人は着る 持っていない人は赤のTシャツを持参してもらう⇒園長先生提案、おやじTシャツ以外は白無地Tシャツにする方向で 9/5 update アルゴリズム体操またはアルゴリズム行進を披露 体操だけだと寂しいので、他の出し物と絡める 他の出し物は、園児と綱引き対戦が有力だが、人数設定が難しそう 他の出し物の進行や構成は園にお任せする 体操&行進の準備はおやじ中心で進める。最低でも2回の集合練習が必要 9月初めのダンサー募集が必要 手紙案 最終更新者:reimeioyaji
https://w.atwiki.jp/nina_a/pages/17.html
ソートアルゴリズムの実装 このページを編集 バブルソート もっとも直感的なソートアルゴリズム void BubbleSort(int data[], const int len){ for(int max = len-1; max 0; --max){ for(int k = 0; k max; ++k){ if(data[k] data[k+1]){ int tmp; tmp = data[k+1]; data[k+1] = data[k]; data[k] = tmp; } } } } セレクションソート バブルソートの改良版 void SelectionSort(int data[], const int len){ int m, tmp; for(int max = len; max 0; --max){ m = 0; for(int k = 1; k max; ++k){ if(data[m] data[k]){ m = k; } } tmp = data[max]; data[max] = data[m]; data[m] = tmp; } } クイックソート 実用上で最も早い void QuickSort(int data[], const int low, const int high){ if(low high){ // ピボットの決定 int x = (data[low] + data[high] + data[(low+high)/2])/3; int left = low - 1, right = high + 1; while(left = right){ while(data[++left] x); while(data[--right] x); if(left right) Swap( data[left], data[right]); } QuickSort(data, low, right); QuickSort(data, left, high); } } 各アルゴリズムの実行時間(実測) 以下は課題でソートにかかる時間を実測した結果である。なお、当時のCPU利用時間制限上、ソートに3分以上かかる物については-と表記した。 データ数 バブルソート セレクションソート クイックソート 基数ソート 10000 1.207 0.698 0.003 0.005 20000 4.830 2.790 0.006 0.011 30000 10.85 6.281 0.009 0.018 40000 19.31 11.16 0.012 0.022 50000 30.18 17.44 0.015 0.028 60000 43.49 25.18 0.018 0.034 70000 59.22 34.25 0.021 0.041 80000 77.49 44.88 0.025 0.045 90000 98.25 57.25 0.028 0.054 100000 121.3 70.22 0.031 0.057 200000 - - 0.065 0.115 300000 - - 0.099 0.172 400000 - - 0.134 0.228 500000 - - 0.169 0.290 600000 - - 0.206 0.343 700000 - - 0.255 0.406 800000 - - 0.290 0.467 900000 - - 0.347 0.541 1000000 - - 0.358 0.649 カテゴリ:C/C++