目次
PHP全排列算法实现程序代码
ホームページ php教程 php手册 PHP全排列算法实现程序代码

PHP全排列算法实现程序代码

Jun 13, 2016 am 09:17 AM
php 違う 個人の コード 要素 成し遂げる 配置 プログラム アルゴリズム

PHP全排列算法实现程序代码

   从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

  简介

  如1,2,3三个元素的全排列为:

  1,2,3

  1,3,2

  2,1,3

  2,3,1

  3,1,2

  3,2,1

  共3*2*1=6种 3!

  2公式

  全排列数f(n)=n!(定义0!=1)

  递归算法

  1,2,3

  1,3,2

  2,1,3

  2,3,1

  3,2,1

  3,1,2

  这是由于算法只是考虑到了如何输出全排列,而没有考虑到换位是否有问题。所以我提出了解决方案,就是换位函数修改下

  如 1 2 3 换位的话 ,不应该直接 3 2 1这样 ,让3和1直接换位; 而是让3排在最前后 ,1 2 依次向后

  基本算法

  以下介绍全排列算法四种:

  (A)字典序法

  (B)递增进位制数法

  (C)递减进位制数法

  (D)邻位对换法

  实现全排列算法

代码如下  

header("content-type:text/html;charset=utf-8");/**
* @param array $a 待排列的元素集合,会动态变化
* @param array $b 储存当前排列
* @param array $M 待排列的元素集合,相当于一个常量,始终为初始待排列的元素集合
*/
function wholerange($a,$b,$M){
$range=array();
if(count($a) > 1){
$d=$b;
foreach($a as $value){
$b[]=$value;
$c=array_diff($M,$b);
if(count($c) > 0){
$range[]=wholerange($c,$b,$M);
}
$b=$d;
}
}elseif(count($a) == 1){
foreach($a as $value){
$b[]=$value;
}
$onerange="";
foreach($b as $value){
$onerange.=$value;
}
$range[]=$onerange;
}
return $range;
}
/**
* 递归输出数组
*
* @param array $arr 待输出的数组
* @return int 返回数组元素个数*/
function recursionarray($arr){
$i=0;
foreach($arr as $value){
if(is_array($value)){
$i+=recursionarray($value);
}else{
echo $value."
";
$i++;
}
}
return $i;
}
$a=array('A','B','C','D');
$b=array();
$range=wholerange($a,$b,$a);
$count=recursionarray($range);
echo "总共有".$count."排列";
?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

世界のトップ10の仮想通貨取引プラットフォームのトップ10のランキングは何ですか? 世界のトップ10の仮想通貨取引プラットフォームのトップ10のランキングは何ですか? Feb 20, 2025 pm 02:15 PM

暗号通貨の人気により、仮想通貨取引プラットフォームが登場しています。世界の上位10の仮想通貨取引プラットフォームは、トランザクションの量と市場シェアに従って次のようにランク付けされています:Binance、Coinbase、FTX、Kucoin、Crypto.com、Kraken、Huobi、Gate.io、Bitfinex、Gemini。これらのプラットフォームは、幅広い暗号通貨の選択から、さまざまなレベルのトレーダーに適したデリバティブ取引に至るまで、幅広いサービスを提供しています。

ゴマのオープンエクスチェンジを中国語に調整する方法 ゴマのオープンエクスチェンジを中国語に調整する方法 Mar 04, 2025 pm 11:51 PM

ゴマのオープンエクスチェンジを中国語に調整する方法は?このチュートリアルでは、コンピューターとAndroidの携帯電話の詳細な手順、予備的な準備から運用プロセスまで、そして一般的な問題を解決するために、セサミのオープン交換インターフェイスを中国に簡単に切り替え、取引プラットフォームをすばやく開始するのに役立ちます。

トップ10の暗号通貨取引プラットフォーム、トップ10の推奨される通貨取引プラットフォームアプリ トップ10の暗号通貨取引プラットフォーム、トップ10の推奨される通貨取引プラットフォームアプリ Mar 17, 2025 pm 06:03 PM

上位10の暗号通貨取引プラットフォームには、1。Okx、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

トップ10仮想通貨取引プラットフォーム2025暗号通貨取引アプリランキングトップ10 トップ10仮想通貨取引プラットフォーム2025暗号通貨取引アプリランキングトップ10 Mar 17, 2025 pm 05:54 PM

トップ10仮想通貨取引プラットフォーム2025:1。OKX、2。BINANCE、3。GATE.IO、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

安全で信頼できるデジタル通貨プラットフォームは何ですか? 安全で信頼できるデジタル通貨プラットフォームは何ですか? Mar 17, 2025 pm 05:42 PM

安全で信頼できるデジタル通貨プラットフォーム:1。OKX、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

トップ10の仮想通貨トレーディングアプリのうち、トップ10の仮想通貨取引アプリのどれが最も信頼できますか? トップ10の仮想通貨トレーディングアプリのうち、トップ10の仮想通貨取引アプリのどれが最も信頼できますか? Mar 19, 2025 pm 05:00 PM

トップ10仮想通貨取引アプリのランキング:1。OKX、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

See all articles