問題タブ [minmax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
88 参照

c++11 - *iter.first と iter->first の違いは何ですか?

ここで私はコメントを介して説明しました。コメントを参照してください。

0 投票する
1 に答える
886 参照

java - Java Connect 4 MinMax アルゴリズム

編集: 誰かが私の質問の重複として TicTacToe をリンクしている理由がわかりません。その中に MinMax-Algorithm さえありません。

現在、MinMax-Algorithm を使用する必要があるコンピューターに対して Connect4 ゲームに取り組んでいます。その前に、MinMax も使用する TicTacToe を作成しましたが、Connect4-Game に一致するように古いアルゴリズムを変更する方法がわかりません :/. TicTacToe では、私が書いた勝利条件で考えられる各動きを評価しました。うまくいきましたが、新しい条件ではうまくいきません。私のmakeAMoveなどはうまくいきます!

これらは私の古い条件と TicTacToe の MinMax です。

//プレイヤー1の勝ち

}

// プレイヤー 2 の勝利

}

私が言ったように、私は次のように MinMax にこれらの条件を使用しました:

...

これを新しい条件で機能させる方法がわかりません:

たとえば、これをチェックする評価関数を作成する必要があると思います(これは行の勝利条件です):

私はそれがたくさんのテキストであることを知っていますが、誰かが私にいくつかの役に立つヒントを教えてくれるかもしれません:)

ありがとう!

マックス

0 投票する
2 に答える
768 参照

javascript - JavaScript:非常に大きな配列の最小値と最大値?

非常に大きな JavaScript 配列 (例: 25 万個の数値) から最小値と最大値を簡単に取得するにはどうすればよいですか?

このメソッドを使用しようとしましたが、うまくいきません: JavaScript: min & max Array values?

エラーが発生しないVisualStudioでデバッグしていますが、ブラウザでは「最大コールスタックサイズを超えました」と表示されます。

コード例:

「arr」は私の非常に大きな配列です。

0 投票する
1 に答える
409 参照

java - ミニマックス アルゴリズムのスタック オーバーフロー エラー

こんにちは、私は最近 Java でプログラミングを始めました。私が作成した三目並べゲームの AI を作成するタスクを自分自身に設定しました。ただし、最小最大アルゴリズムがスタック オーバーフロー エラーをスローし、エラーまたは問題のあるプログラム。

プログラムは次のとおりです。

最善の手の状態を返します。

getNull() は、再生できる残りのスペースの量を返します。

getSuccesorStates(Player) は、プレーヤーの古い動きと新しい動きを含む新しい状態を作成することにより、その状態の後続の状態をすべて返します。

evaluate() は、その状態での勝ち、引き分け、または負けに応じて、値 -1、0、または 1 を返します。なしは 0 を返します

編集:

23:32 if (currentState.getNull() == 0)
:scoresTemp.add(evaluate(aiPlayer, minmax(!max, state)));

minmax は以下で呼び出されます:

誰かが助けてくれたらありがとう:)

0 投票する
1 に答える
9060 参照

r - データを非正規化する

この R コードを使用して、最小値と最大値でデータを正規化しました。

データを非正規化するにはどうすればよいですか?

0 投票する
3 に答える
582 参照

c# - char 配列から出力用の同じ char 配列への最小最大値を確立する方法

これが私のコードです:

ここに私の疑問があります。

私の質問があるところの終わり。

詳細は次のとおりです (さらに必要な場合は、お気軽に返信してください。):

すべてを分割するための私の個人的な好みである pi.max の代わりに num.max を使用しようとしましたが、どちらの場合でも、インデックスが負であるか、考えている方法でコレクションよりも大きい範囲外の例外が発生します動作するはずです

  1. 私が書いたものを何でもpi変数に設定します

  2. 次に、各文字を文字配列に分割します

  3. 次に、pi を使用して最小値と最大値を決定します。

  4. 次に、書かれたとおりに正確に書き出す必要があります。元。""hello" 入力 "hello" 出力に変わります。

今ここに私が持っている3つの質問があります:

  1. 私の論理は正しいですか?そうでない場合は、すみませんが、私は 18 歳で、主に自分にできることとできないことを探求するのが好きです。

  2. char 配列の最小値と最大値をどのように使用すればよいですか。もし私がこんにちはと書くなら、私は使うことができます

    char[] Var = pi.ToCharArray(0,5);

    ConsoleWriteLine(Var);

出力は「Hello」ですよね?しかし、「Hello World」と書いた場合、文字列内の文字の量に関係なく、文字列内のすべての文字を取得するにはどうすればよいでしょうか。または、文字列内の文字の量を使用して取得する方法を尋ねるより良い方法ですToCharArray(min,max) の最小値と最大値なので、10 文字の文または 100 文字の文を書いた場合、範囲外の例外が発生することはありませんか?

  1. 単純な 1 ~ 5 行のコードでこれを行う方法はありますか? 私は怠け者ではありませんが、簡単なほど簡単なので、使用してみませんか。
0 投票する
1 に答える
982 参照

algorithm - ゲーム ツリー アルゴリズムとプログレッシブ ディープニング: リーフ ノードに到達せずに答えを近似する方法は?

ゲーム ツリーと MinMax アルゴリズムに関するこの MIT レクチャーを見たところ、アルファ ベータ プルーニングとプログレッシブ ディープニングが議論されていました。
https://www.youtube.com/watch?v=STjW3eH0Cik

したがって、プログレッシブディープニングとは、すべてのレベルで答えを近似し、移動の制限時間に応じてリーフノードに向かって深く進んでいくことを正しく理解している場合です。どんな時でも答えを持っていることが重要です。さて、36:22 で教授は、十分な時間がなく、d が木の深さである (d-1) 番目のレベルまでしか行っていない場合について説明します。そして、彼はまた、いつでもおおよその答えが得られるはずなので、下に行くにつれてすべてのレベルで一時的な答えを得ることができると示唆しています。

私の質問は、誰がゲームに勝つことができるかを結論付けることができるのは葉ノードでのみであるため、葉ノードに行かずにどのように答えを得ることができるかということです. これを三目並べゲームと考えてください。(d-1) 番目のレベルでは、(d-1) のこのノードまでのこの一連の動きがゲームに勝つか負けるかを判断するのに十分な情報がありません。より高いレベルでは、(d-3) と言うと、さらにぼやけます! 私たちが降りるとき、すべてが可能です。ではない?したがって、アルゴリズムが (d-1) 番目のレベルまで計算することを決定した場合、それらのパス オプションはすべて等しくなります。(d-1) レベルでの勝利と敗北を保証するものは何もありません。なぜなら、私が正しく理解している場合、勝敗は葉ノードでしか計算できないからです。これは、特に純粋な MinMax アルゴリズムに当てはまります。

では、(d-1) レベルまたは (d-5) レベルで「おおよその答え」を得るにはどうすればよいのでしょうか?

0 投票する
6 に答える
2302 参照

c++ - std::pairs を返す関数を簡単に処理する方法はありますか?

C++11 にはstd::minmax_element、値のペアを返す関数があります。ただし、これは処理と読み取りが非常に混乱し、後で役に立たない余分な変数が生成されてスコープが汚染されます。

これを行うより良い方法はありますか?何かのようなもの: