php实现约瑟夫问题的方法小结
这篇文章主要介绍了php实现约瑟夫问题的方法,实例总结了两种常见的实现约瑟夫问题的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例总结了php实现约瑟夫问题的方法。分享给大家供大家参考。具体分析如下:
一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, 再数到第m只,在把它踢出去...,如此不停的进行下去, 直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
解析:
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
方法一:
?
1 2 3 4 5 6 7 8 9 10 11 |
function getLeader($n,$m) { $res=0; for($i=2; $i $res=($res+$m)%$i; } return $res+1; } $leader = getLeader(13,34); echo $leader; ?> |
方法二:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//定义函数 function getKing($monkeys , $m , $current = 0){ $number = count($monkeys); $num = 1; if(count($monkeys) == 1){ echo '编号为'.$monkeys[0].'的猴子成为猴王了!'; return; }else{ while($num++ $current++ ; $current = $current%$number; } echo "编号为".$monkeys[$current]."的猴子被踢掉了... array_splice($monkeys , $current , 1); getKing($monkeys , $m , $current); } } $n=13; //总共猴子数目 $m = 34; //数到第几只的那只猴子被踢出去 $monkeys = range(1,$n); //将猴子编号放入数组中 getKing($monkeys , $m); //调用函数 ?> |
希望本文所述对大家的php程序设计有所帮助。

Abhängigkeitsinjektion (DI) InphpenHancesCodeFlexibility und TestabilityByDecoubingDependencycreation Fromusage

ToimPoveyourphpwebsites Sperrformance, UsethesStrategien: 1) ImplementoPcodeCachingWithopcachetospeedUpScriptinterpretation.2) optimizedatabasequeriesBySelectingonlyNlyn -notwendigem Feldern

Ja, itispossibletosendmassemailswithphp.1) uselibrary -LikephpmailerorsWiftmailerFefficienceMailSending.2) ImplementDelaysBetumailstoAvoidSpamFlAGs.3) personalisierungseemailSuseddynamiccontentToImproviVeenGhalent.4) Nutzungsunternehmen

Abhängigkeitsinjektion (DI) InphpisadsignPatternThatachieVesinversionofControl (IOC) BylowlowingDependencieStobeinjectedIntoclasses, EnhancingModularity, Testbarkeit und Flexibilität

Die besten Möglichkeiten zum Senden von E -Mails mit PHP sind: 1.. Verwenden Sie die Funktion von PHP -E -Mail () für das grundlegende Senden; 2. Verwenden Sie die Phpmailer -Bibliothek, um komplexere HTML -Mails zu senden. 3.. Verwenden Sie Transaktions -Mail -Dienste wie SENDGRID, um die Zuverlässigkeits- und Analysefunktionen zu verbessern. Mit diesen Methoden können Sie sicherstellen, dass E -Mails nicht nur den Posteingang erreichen, sondern auch Empfänger anziehen.

Die Berechnung der Gesamtzahl der Elemente in einem multidimensionalen PHP -Array kann mit rekursiven oder iterativen Methoden erfolgen. 1. Die rekursive Methode zählt durch Überqueren des Arrays und die rekursive Verarbeitung verschachtelter Arrays. 2. Die iterative Methode verwendet den Stapel, um die Rekursion zu simulieren, um Tiefenprobleme zu vermeiden. 3. Die Funktion array_walk_recursive kann ebenfalls implementiert werden, erfordert jedoch eine manuelle Zählung.

In PHP besteht das Merkmal einer DO-While-Schleife darin, sicherzustellen, dass der Schleifenkörper mindestens einmal ausgeführt wird, und dann zu entscheiden, ob die Schleife basierend auf den Bedingungen fortgesetzt werden soll. 1) Es wird die Schleifenkörper vor der bedingten Überprüfung ausgeführt, die für Szenarien geeignet ist, in denen Vorgänge mindestens einmal ausgeführt werden müssen, z. B. die Überprüfung der Benutzereingabe und der Menüsysteme. 2) Die Syntax der DO-While-Schleife kann jedoch bei Neulingen Verwirrung verursachen und unnötige Leistungsaufwand verleihen.

Effiziente Hashing -Zeichenfolgen in PHP können die folgenden Methoden verwenden: 1. Verwenden Sie die MD5 -Funktion für schnelles Hashing, eignen sich jedoch nicht für den Kennwortspeicher. 2. Verwenden Sie die SHA256 -Funktion, um die Sicherheit zu verbessern. 3.. Verwenden Sie die Funktion password_hash, um Passwörter zu verarbeiten, um die höchste Sicherheit und Bequemlichkeit zu gewährleisten.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.
