タグ

algorithmに関するaikeのブックマーク (43)

  • 競技プログラミングで解法を思いつくための典型的な考え方 | アルゴリズムロジック

    競技プログラミングの問題を解くためには2つのステップがあります。 問題で要求されていることを言い換える知っているアルゴリズムやデータ構造を組み合わせて解く 必要な(知っておくべき)アルゴリズムやデータ構造は色々なところで学ぶことができます。 しかし、「問題の言い換え」や「アルゴリズムを思いつく」というのは、非常に様々なバリエーションがあり、問題をたくさん解かないとなかなか身につきません。 そこで、この記事は以下のことを言語化し、練習のための例題を提示することを目標とします。 問われていることを、計算しやすい同値なことに置き換える方法アルゴリズムを思いつくための考え方競技プログラミングで「典型的」と思われる考え方 ※一部問題のネタバレを含むので注意 ※良く用いられるアルゴリズムやデータ構造については競技プログラミングでの典型アルゴリズムとデータ構造 を参考にして下さい。 入力の大きさ(制約)

    競技プログラミングで解法を思いつくための典型的な考え方 | アルゴリズムロジック
  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

    スーパーマリオのジャンプのアルゴリズム - Qiita
  • Algorithmic Composer

    Today's algorithmic composition tutorial uses sonification as a composition tool. Sonification uses data that is typically not musical and involves remapping this to musical parameters to create a composition. Sonification can be used to hear information in a set of data that might be otherwise difficult to perceive, common examples include Geiger counters, sonar and medical monitoring [ECG]. When

  • The 5 Clustering Algorithms Data Scientists Need to Know

    Clustering is a Machine Learning technique that involves the grouping of data points. Given a set of data points, we can use a clustering algorithm to classify each data point into a specific group. In theory, data points that are in the same group should have similar properties and/or features, while data points in different groups should have highly dissimilar properties and/or features. In Data

    The 5 Clustering Algorithms Data Scientists Need to Know
  • Library of Algorithms

    "例:挿入ソート" for i = 1〜要素数-1: 挿入要素 = 配列[i] if 挿入要素 < 左隣: 挿入場所 = i while 挿入要素 < 配列[挿入場所-1]: 比較した要素を右にずらす 挿入場所を一つ左 配列[挿入場所] = 挿入要素 終了

    Library of Algorithms
  • 再帰的なアルゴリズムの実例集 - Qiita

    再帰的なアルゴリズムの考え方に慣れるためにいくつかの有名な例を集めた。それぞれについてサンプルコードと「問題を小さくする方法」「終了条件」を記している。 注意事項: アルゴリズムの細かい効率よりも、論理の分かりやすさに重点を置いている 問題の前提に沿わない入力(例えば負の整数や小数)のチェックは省いている 再帰的なデータ構造や再帰を除去する方法については扱わない サンプルコードはRubyで書いている 基的な再帰 階乗 nの階乗とは n! = 1*2*...*n という計算のこと。例えば「n人が一列に並ぶ方法の総数」を表せる。 「1からnまでの整数の積」と言われたらfor文などのループで書きたくなるが、再帰的な計算もできる。

    再帰的なアルゴリズムの実例集 - Qiita
  • アルゴリズムの勉強のしかた - きしだのHatena

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

    アルゴリズムの勉強のしかた - きしだのHatena
  • 遺伝的FM音源

    遺伝的アルゴリズムを使って人間がパラメータを調整する事なくFM音源から意図した音色の音を出す手法を解説します https://github.com/Fadis/genetic_fm 追記: 発表の動画を用意しました https://www.youtube.com/watch?v=oJy0g0mt8LA

    遺伝的FM音源
  • Catmull-Rom 補間 - blog.seyself.com

    スプライン補間があんまり混雑な計算になってしまうので いろいろ探してたら「Catmull-Rom 補間」なるものを知りました。 function CatmullRom(p0:Number, p1:Number, p2:Number, p3:Number, t:Number):Number { var v0:Number = (p2 - p0) / 2; var v1:Number = (p3 - p1) / 2; var t2:Number = t * t; var t3:Number = t2 * t; return (2 * p1 - 2 * p2 + v0 + v1) * t3 + ( -3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1; } t には 0.0 から 1.0 の係数が入ります。 p0 から p3 間にある点、p

  • 勾配降下法の最適化アルゴリズムを概観する | POSTD

    (編注:2020/10/01、2016/07/29、いただいたフィードバックをもとに記事を修正いたしました。) 目次: さまざまな勾配降下法 バッチ勾配降下法 確率的勾配降下法 ミニバッチ勾配降下法 課題 勾配降下法を最適化するアルゴリズム Momentum(慣性) Nesterovの加速勾配降下法 Adagrad Adadelta RMSprop Adam アルゴリズムの可視化 どのオプティマイザを選ぶべき? SGDの並列化と分散化 Hogwild! Downpour SGD SGDのための遅延耐性アルゴリズム TensorFlow Elastic Averaging SGD 最適化されたSGDに対する更なる戦略 シャッフル学習とカリキュラム学習 バッチ正規化 早期終了 勾配ノイズ 結論 参考文献 勾配降下法は、最適化のための最も知られたアルゴリズムの1つです。これまではニューラルネット

    勾配降下法の最適化アルゴリズムを概観する | POSTD
  • Intelligent Music For Games

  • Algorithmic Music Generation with Recurrent Neural Networks

    This is the result of a project I worked on for CS224D with Aran Nayebi. The idea is to design a neural network that can generate music using your music library as training data. While I believe we could probably improve upon this model significantly, it serves as a good proof of concept for showing that it is indeed possible. We use Long Short-Term Memory (LSTM) networks to model hidden recurrenc

    Algorithmic Music Generation with Recurrent Neural Networks
  • 最適化超入門

    スライドは、弊社の梅により弊社内の技術勉強会で使用されたものです。 近年注目を集めるアーキテクチャーである「Transformer」の解説スライドとなっております。 "Arithmer Seminar" is weekly held, where professionals from within and outside our company give lectures on their respective expertise. The slides are made by the lecturer from outside our company, and shared here with his/her permission. Arithmer株式会社は東京大学大学院数理科学研究科発の数学の会社です。私達は現代数学を応用して、様々な分野のソリューションに、新しい高度AIシステム

    最適化超入門
  • http://www.technotype.net/hugo.elias/models/m_perlin.html

  • Boidsシミュレーション - WonderPlanet DEVELOPER BLOG

    こんにちは、エンジニアの成田です。 以前のアリのフェロモントレイルに続き、今回も人工知能のシミュレーションを行ってみます。今回は人工生命のアルゴリズムとしてはメジャーであるBoidsを取り上げます。 1.Boids Boidsとは1987年のSIGGRAPHでCraig Reynolds氏が発表した人工生命プログラムで、鳥や魚、陸上動物の群れのような動きを行うオブジェクト(boid)の集合体です。このアルゴリズムの面白いところは各オブジェクトに簡単なルールをいくつか適用するだけで全体が複雑な動きを見せるところです。その意味では前回のアリのフェロモントレイルと同じくBoidsも群知能と言えます。 Reynoldsが群れをシミュレーションするために定義したルールは 衝突の回避…近隣の仲間との衝突を避ける 速度の適合…近隣の仲間の速度に合わせようとする 群れ中心化…近隣の仲間の近くに居ようとする

    Boidsシミュレーション - WonderPlanet DEVELOPER BLOG
  • パーリンノイズを理解する | POSTD

    この記事の目的はKen Perlinの改良パーリンノイズを分かりやすく分析し、お伝えすることです。記事内のコードはC#で書かれており、自由にご利用いただけます。最終形のみを見たい方は、こちらから最終的なソースをご確認ください。 パーリンノイズは手続き的なコンテンツ生成によく使われる、非常に強力なアルゴリズムです。ゲームや、映画などの視覚媒体に特に有用です。パーリンノイズの開発者であるKen Perlinは、この最初の実装でアカデミー賞を受賞しました。彼が2002年に発表した改良パーリンノイズについて、私はこの記事で掘り下げていきます。パーリンノイズは、ゲーム開発においては、波形の類や、起伏のある素材、テクスチャなどに有用です。例えば手続き型の地形(Minecraftのような地形はパーリンノイズで生成できます)、炎のエフェクト、水、雲などにも使えます。これらのエフェクトのほとんどが2次元、3

    パーリンノイズを理解する | POSTD
  • 信号の類似度の測定 - MATLAB & Simulink Example - MathWorks 日本

    この例では、信号の類似度の測定方法を示します。これは次のような問題の解決に役立ちます。長さやサンプル レートが異なる信号を比較するにはどうするのか。測定データにあるのが信号かノイズにすぎないかを確かめるにはどうするのか。2 つの信号に関連はあるのか。2 つの信号間の遅れを測定するにはどうするのか (また、信号はどう配置するのか)。2 つの信号の周波数成分はどうやって比較するのか。類似度は、1 つの信号の異なる部分で検出されることで、その信号が周期的かどうかの判断も可能にします。 サンプル レートが異なる信号の比較オーディオ信号データベースやパターン マッチング アプリケーションで、再生中の曲名を特定する場合を考えてみます。メモリ占有量を少なくするため、一般的にデータは低サンプル レートで保存されます。 load relatedsig figure ax(1) = subplot(3,1,1

  • 「多数決」以上に民意を反映できる選挙方法とはどのようなものなのか?

    By Angela Radulescu 最も多くの得票数を得た1名が選出される「多数決方式」は、一般的な選挙方法として日に限らず世界中で採用されています。しかし、3名以上の候補者がいる場合には、たとえ半数以上の人が反対したとしても当選する人が現れるのが避けられないため、必ずしも民意を反映できないと古くから指摘され、よりよい投票方式が模索されています。 Voting in Organizations, Clubs, Meetings, and Families http://democracychronicles.com/voting-in-organizations-clubs-meetings-and-families/ ◆多数決の問題点 日の国政選挙や地方選挙など多くの選挙では「多数決」による投票制が採用されています。一般的な多数決では、投票者は最も好ましいと思う人(当選させたい人

    「多数決」以上に民意を反映できる選挙方法とはどのようなものなのか?
  • 正月の酔っ払い物理学者が数学者の皮を被った天使に出会うお話 | カメリオ開発者ブログ

    あけましておめでとうございます。白ヤギの物理担当、シバタアキラ(@punkphysicist)です。 皆様はどんなお正月を過ごされましたか?日の正月といえば、おせち、日酒、おばあちゃん、そしてパズル、ですよね。私の正月はそんな感じでした。お節をたらふくべ、美味しいお酒でほろ酔い気分になっている私の横で、黙々とおばあちゃんがパズルをやっているのに気づいたのです。部屋中をフワフワしている私とは全く対照的に、微動だにせずパズルを続けるおばあちゃん。御年迎えられると辛抱強さが半端ない。 そんなおばあちゃんがやっていたのはかわいいチョコレートのピースとは裏腹にこんな挑発的な文言の書かれたパズルです(この記事はアフィリエイトではありませんが、写真をクリックすると買えます) 何時間たっても答えが出ないおばあちゃん、辛抱強さは人一倍強いですが、私も何とか助けてあげたいと思いトライ。しかし日酒が・・

    正月の酔っ払い物理学者が数学者の皮を被った天使に出会うお話 | カメリオ開発者ブログ
  • imagemagickで先日いろいろと教えて頂いた-fxオプションを使って、 添付のような魚眼加工ができないか試しているのですが、どうもうまくいきません。…

    imagemagickで先日いろいろと教えて頂いた-fxオプションを使って、 添付のような魚眼加工ができないか試しているのですが、どうもうまくいきません。imagemagickでどのようなconvert文を実行すれば良いか教えてもらえないでしょうか? また、計算式が複雑な場合、簡単な解説もつけて頂けると助かります。 何らかの中間画像が必要なのかもしれないですが・・・。

    imagemagickで先日いろいろと教えて頂いた-fxオプションを使って、 添付のような魚眼加工ができないか試しているのですが、どうもうまくいきません。…