Home Daily Programming PHP Knowledge PHP random selection algorithm (3)

PHP random selection algorithm (3)

Feb 18, 2019 pm 04:06 PM

In the previous article "PHP Random Picking One Algorithm (2)", we introduced in detail the implementation idea of ​​PHP Random Picking One Algorithm, which is the "Fair Selection of Monkey King" interview question solution.

PHP random selection algorithm (3)

# Now we will combine the code methods in the above articles to show you the process of debugging and running the algorithm through Xdebug.

The question is as follows:

A group of monkeys line up in a circle and are numbered according to 1, 2,...,n. Then start counting from the 1st one, count to the mth one, kick it out of the circle, start counting from behind it, count to the mth one, kick it out..., and continue in this way until the end. Until there is only one monkey left, that monkey is called the king. Programming is required to simulate this process, input m, n, and output the number of the last king.

The code is as follows:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

 

function king($n, $m){

    $monkeys = range(1, $n);         //创建1到n数组

    $i=0;

    while (count($monkeys)>1) {     //循环条件为猴子数量大于1

        if(($i+1)%$m==0) {     //$i为数组下标;$i+1为猴子标号

            unset($monkeys[$i]);  //余数等于0表示正好第m个,删除,用unset删除保持下标关系

        } else {

            array_push($monkeys,$monkeys[$i]);     //如果余数不等于0,则把数组下标为$i的放最后,形成一个圆形结构

            unset($monkeys[$i]);

        }

        $i++;//$i 循环+1,不断把猴子删除,或 push到数组

    }

    return current($monkeys);  //猴子数量等于1时输出猴子标号,得出猴王

}

 

echo king(10,3);

Copy after login

First we create a breakpoint before the fourth line of code.

PHP random selection algorithm (3)

#Then open the browser and run this code. The breakpoint successfully obtains focus, as follows.

PHP random selection algorithm (3)

#Create an array from 1 to n.

PHP random selection algorithm (3)

Then the while loop determines whether to delete the element.

PHP random selection algorithm (3)

This cycle leads to the "Monkey King".

Related recommendations: "How to configure and use the xdebug tool in PHPStorm? (Picture, text and video tutorial)

So that’s it for the introduction of PHP’s random selection algorithm. You can also test it locally. It's actually very simple. I hope it will be helpful to friends who need it!

The above is the detailed content of PHP random selection algorithm (3). For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1665
14
PHP Tutorial
1270
29
C# Tutorial
1249
24