


This article mainly introduces the Monkey King algorithm (monkey chooses the king) implemented in PHP. It has a certain reference value. Now I share it with you. Friends in need can refer to it.
The examples in this article are described Monkey King algorithm implemented in PHP. Share it with everyone for your reference, the details are as follows:
<?php function getKingMokey($n, $m) { $monkey[0] = 0; //将1-n只猴子顺序编号 入数组中 for($i= 1; $i<= $n; $i++) { $monkey[$i] = $i; } $len = count($monkey); //循环遍历数组元素(猴子编号) for($i= 0; $i< $len; $i= $i) { $num = 0; foreach($monkey as $key => $value) { if($value == 0) continue; $num++; $values = $value; } //若只剩一只猴子 则输出该猴子编号(数组元素值) 并退出循环 if($num == 1) { echo $values; exit; } //将第$i只猴子踢出队伍(相应数组位置元素值设为0) $monkey[$i] = 0; //打印该猴子位置 echo $i.""; //设置计数器 for($j= 1; $j<= $m; $j++) { //猴子编号加一,遍历下一只猴子 $i++; //若该猴子未被踢出队伍,获取下一只猴子编号 if($monkey[$i] > 0) continue; //若元素值为0,则猴子已被踢出队伍,进而循环取下一只猴子编号 if($monkey[$i] == 0) { //取下一只猴子编号 for($k= $i; $k< $len; $k++) { //值为0,编号加1 if($monkey[$k] == 0) $i++; //否则,编号已取得,退出 if($monkey[$k] > 0) break; } } //若编号大于猴子个数,则从第0只猴子开始遍历(数组指针归零) //步骤同上 if($i == $len) $i = 0; //同上步骤,获取下一只猴子编号 if($monkey[$i] == 0) { for($k= $i; $k< $len; $k++) { if($monkey[$k] == 0) $i++; if($monkey[$k] > 0) break; } } } } } //猴子个数 $n = 10; //踢出队伍的编号间隔值 $m = 3; //调用猴王获取函数 getKingMokey($n, $m); ?>
Running results:
##036927185104
Using recursive algorithm
$monkeys = array(1 , 2 , 3 , 4 , 5 , 6 , 7, 8 , 9 , 10); //monkey的编号 $m = 4; //数到第几只的那只猴子被踢出去 function killMonkey($monkeys , $m , $current = 0){ $number = count($monkeys); $num = 1; if(count($monkeys) == 1){ echo $monkeys[0]."成为猴王了"; return; } else{ while($num++ < $m){ $current++ ; $current = $current%$number; } echo $monkeys[$current]."的猴子被踢掉了<br/>"; array_splice($monkeys , $current , 1); killMonkey($monkeys , $m , $current); } } killMonkey($monkeys , $m);Run result:
#4 monkey was kicked off8 monkey was kicked off
2 monkey was kicked off
7 The monkey was kicked off
3 monkey was kicked off
10 monkey was kicked off
9 monkey was kicked off
1 monkey was kicked off
6 The monkey was kicked off
5 and became the Monkey King
Related recommendations:
PHP implementation of shopping website
Detailed explanation of how PHP implements the execution of external programs
The above is the detailed content of Monkey King Algorithm implemented in PHP (monkey chooses the king). For more information, please follow other related articles on the PHP Chinese website!

Load balancing affects session management, but can be resolved with session replication, session stickiness, and centralized session storage. 1. Session Replication Copy session data between servers. 2. Session stickiness directs user requests to the same server. 3. Centralized session storage uses independent servers such as Redis to store session data to ensure data sharing.

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

Sessionhijacking refers to an attacker impersonating a user by obtaining the user's sessionID. Prevention methods include: 1) encrypting communication using HTTPS; 2) verifying the source of the sessionID; 3) using a secure sessionID generation algorithm; 4) regularly updating the sessionID.

The article discusses PHP, detailing its full form, main uses in web development, comparison with Python and Java, and its ease of learning for beginners.

PHP handles form data using $\_POST and $\_GET superglobals, with security ensured through validation, sanitization, and secure database interactions.

The article compares PHP and ASP.NET, focusing on their suitability for large-scale web applications, performance differences, and security features. Both are viable for large projects, but PHP is open-source and platform-independent, while ASP.NET,

PHP's case sensitivity varies: functions are insensitive, while variables and classes are sensitive. Best practices include consistent naming and using case-insensitive functions for comparisons.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

WebStorm Mac version
Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
