目次
猿の選択王問題をphpで実装するアルゴリズムの例
ホームページ バックエンド開発 PHPチュートリアル 猿王問題アルゴリズムの PHP 実装例_PHP チュートリアル

猿王問題アルゴリズムの PHP 実装例_PHP チュートリアル

Jul 13, 2016 am 09:56 AM
php

猿の選択王問題をphpで実装するアルゴリズムの例

以下は、猿の選択王問題をphpで実装するアルゴリズムの例です。

この記事では、PHP での猿王問題アルゴリズムの実装について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

1. 質問:

n匹のサルが円を描き、時計回りに1からnまでの番号が付けられています。

次に、1 番の猿から時計回りに 1 から数え始めます。m に報告された猿が出てきて、先ほど出てきた猿の隣の位置から再び数え始めます。

これを、一匹だけ残った猿が王様になるまで繰り返します。

次の機能を実現するプログラムを設計および作成します:

(1) ユーザーはサルの開始数 $n と報告された最後の数 $m を入力する必要があります。

(2)選出された猿王の初期番号を言います。

2. 解決策:

?

補足的に改良されたアルゴリズム (このアルゴリズムはより簡潔で明確です!):

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

/**

* @param int $n 先頭のサルの数

* @param int $m 最後に報告された番号

*(この数を報告したサルは除外され、次のサルが再び①から数え始めます)

* @return int 猿の初期番号

*/

関数 MonkeySelectKing($n,$m)

{

//最初のサルの数は 2 つ未満にすることはできません

if ($n {

false を返す;

}

$arr=範囲(1,$n);

//サルを配列にグループ化します。配列の値はサルの初期番号に対応します

$unsetNum=0;

//サルの数を記録する変数を定義します

for ($i = 2; $i //総サイクル数の計算方法がわかりません

{

//でもループ内にreturnが設定されているので$m*$lenの効率は大丈夫です

foreach ($arr as $k => $v)

{

$unsetNum++; //猿が到着するたびに、猿のカウントは+1されます

//報告されたサルの数が排除された数と等しい場合: サルを排除する(配列要素を削除)

//カウントを 0 に戻します (次のサルは 1 からカウントを開始します)

if ($unsetNum==$m)

{

// echo "
";//コメントを開くと、具体的な削除プロセスを確認できます

// print_r($arr);

unset($arr[$k]);

//猿を排除する

$unsetNum=0;

//ゼロに戻る

if (count($arr)==1)

//配列の長さを判断し、猿が1匹だけ残っている場合は、その値を返します

{

リセットを返す($arr);

}

}

}

}

}

var_dump(monkeySelectKing(6, 3));

1

2

3

4

5

6

7

8

9

関数ユエセフ($n,$m) {

$r=0;

for($i=2; $i

$r=($r+$m)%$i;

}

$r+1 を返す;

}

print_r(yuesefu(3,3));

この記事が皆様の PHP プログラムのアルゴリズム設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/987105.html技術記事 PHP で猿が王を選ぶ問題を実装するアルゴリズムの例 以下に、猿が王を選ぶ問題を PHP で実装するアルゴリズムの例を紹介します。 この記事の例では、PHP で猿を選ぶ王の問題アルゴリズムを実装する方法を説明します。みんなとシェアしましょう...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles