質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

意見交換

クローズ

2回答

266閲覧

あなたの好きなアルゴリズムはなんですか?

sharpnail

総合スコア29

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2024/08/10 13:30

0

0

テーマ、知りたいこと

みなさんの好きなアルゴリズムについて教えて下さい。

(ちなみにスレ主の好きなアルゴリズムは二分探索です。とても初歩的なアルゴリズムですが、実生活の中でも偶に使ったりと、わりかし汎用性があるアルゴリズムなので好きです)

背景、状況

好きなプログラミング言語の話題はよく聞けど、好きなアルゴリズムの話題ってなかなか聞かないよなぁと思ったので。

競プロerの方もそうでない方も、好きなアルゴリズムがあったら是非。

(過去にも同じ類の質問が投稿されていますが、こちらで新たに意見交換として立てるのを推奨され、せっかくなので投稿してみました。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答2

#1

fana

総合スコア11980

投稿2024/08/12 02:33

何を「アルゴリズム」と呼ぶのかわからないけども……

配列的なデータの途中の要素を「削除」する処理として,削除対象要素を末尾要素で上書きする(そして「要素数」を1減らす)方法

……とかは「これでOKならこれを使う」という感じで,ある意味「好んで」いるのかも…??
データの並び順がわりとどうでもよくて,データ保持可能最大数が固定で良いような場面での簡便な方法.
「簡便」っていいよね.

例:
{ A, B, C, D, E, F } (要素数=6) っていうデータ列から C を除去するときに結果を
{ A, B, F, D, E, F } (要素数=5)とする.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

fana

総合スコア11980

投稿2024/08/12 03:07

編集2024/08/12 03:08

#1 みたいな話じゃなくて,「名前のついている」汎用的なやつ,ということだと…

滑降シンプレックス法(Downhill Simplex Method) とかかな.

多次元の最適化手法だけど

  • 話が簡単:数学が超苦手でも話の内容がわかる/イメージができる(なんと,大元の論文すら読めば読めちゃう)
  • 実装もそこそこ簡単:話が↑のように簡単なので.
  • 使うのが簡単:目的関数の微分が要らない(ある意味,数値微分的なことをする方法なので)

という.ただし,

  • 収束は遅い
  • 使ってみるとハンドリング(初期シンプレックスの与え方とかシンプレックス再構成のタイミングとか)はいろいろと考えなきゃならない

みたいなところはある.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問