質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

518閲覧

phpでのポインタの扱い方

naonao11

総合スコア97

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/09/26 04:00

編集2018/09/26 06:26

配列がどのようになりたっているのかがよくわかっていません。。。そもそもポインタとは異なったものなのでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dice142

2018/09/26 04:02

配列に格納される1はどこから来た数字でしょうか?3とか5とかのときはどうなるのでしょう?
dice142

2018/09/26 04:03

また、丸投げは非推奨なので、ご自身でやってみたコードをご提示いただけると回答を得られやすいです。
madoka9393

2018/09/26 04:04

2ブロック目と3ブロック目の括弧内の数字は添え字ではなく配列の要素ですかね?
naonao11

2018/09/26 04:06

申し訳ございません。。。初めからどうしたらいいのかがわからない状態で。。。   はい、配列の要素ということです
dice142

2018/09/26 04:07

まずは配列Aの表示に絞ってやってみてはいかがでしょうか?
yambejp

2018/09/26 04:15

配列A[1,2] について、配列A[2,1]はいらないのでしょうか?(常に順列?)
naonao11

2018/09/26 04:17

yambejpさん 順不同です!また問題が間違えていたため返させていただきました。。。申し訳ございません
kei344

2018/09/26 04:18

「任意の数字」の数だけ配列に連番が入るということでしょうか。そしてその組み合わせを全通り出力する必要があるということでしょうか?
yambejp

2018/09/26 04:20

任意の数字:4のときは2個対2個なのですか?常に任意の数は偶数?
naonao11

2018/09/26 04:22

kei344さん ありがとうございます!任意の偶数で、通りについては配列内が同じ数になるようにしたいのですがさっぱりわかりません。。。
naonao11

2018/09/26 04:22

yambejpさん はい、その通りです!
kei344

2018/09/26 04:26 編集

「配列内が同じ数」とは?例で出されている物はAB同じ物がありませんが。追記:ああ、6だったらABが3個数字を持つ配列ね。
naonao11

2018/09/26 04:27

kei344さん 任意の数字:2のときは1個対1個  任意の数字:4のときは2個対2個といった形です。言葉足らずで申し訳ございません
madoka9393

2018/09/26 04:30

・与えられる「任意の数」の条件(質問に追記済み) ・格納される値の条件 ・二つの配列の要素数は常に等しい ・格納パターン etc…含めて質問文に追記/修正をしていただいた方がよろしいかと。
guest

回答1

0

ベストアンサー

備考にかけないので・・・

PHP

1$a=[ 2[[1,2],[3,4]], 3[[1,2],[4,3]], 4[[2,1],[3,4]], 5[[2,1],[4,3]], 6[[1,3],[2,4]], 7[[1,3],[4,2]], 8[[3,1],[2,4]], 9[[3,1],[4,2]], 10[[1,4],[2,3]], 11[[1,4],[3,2]], 12[[4,1],[2,3]], 13[[4,1],[3,2]], 14[[2,3],[1,4]], 15[[2,3],[4,1]], 16[[3,2],[1,4]], 17[[3,2],[4,1]], 18[[2,4],[1,3]], 19[[2,4],[3,1]], 20[[4,2],[1,3]], 21[[4,2],[3,1]], 22[[3,4],[1,2]], 23[[4,4],[2,1]], 24[[4,3],[1,2]], 25[[4,3],[2,1]], 26]; 27$b=[ 28[[1,2],[3,4]], 29[[1,3],[2,4]], 30[[1,4],[2,3]], 31[[2,3],[1,4]], 32[[2,4],[1,3]], 33[[3,4],[1,2]], 34]; 35$c=[ 36[[1,2],[3,4]], 37[[1,3],[2,4]], 38[[1,4],[2,3]], 39];

4つの数値から2つずつ取り出す方式は3つあります。
$a:すべての順番を考慮する
$b:各配列内では順列とする
$c:厳密に組み合わせだけを抽出する

それぞれやり方が違うと思います。どれをお望みなのでしょうか?

追記

$bを希望ということで、
配列からr個抜き出す方法をこちらを丸パクリで

PHP

1$num=6; 2$a=range(1,$num); 3$b=[]; 4foreach(nCr($a,floor($num/2)) as $val){ 5 $b[]=[$val,array_filter($a,function($x) use($val){return in_array($x,$val)==false;})]; 6} 7print_r($b); 8function nCr($n,$r){ 9 $c=count($n); 10 $a1=[]; 11 if($c<$r){ 12 return; 13 }elseif($r==1){ 14 for($i=0;$i<$c;$i++){ 15 $a1[$i]=[$n[$i]]; 16 } 17 }elseif($r>1){ 18 $j=0; 19 for($i=0;$i<$c-$r+1;$i++){ 20 $a2=nCr(array_slice($n,$i+1),$r-1); 21 foreach($a2 as $a3){ 22 array_unshift($a3,$n[$i]); 23 $a1[$j]=$a3; 24 $j++; 25 } 26 } 27 } 28 return $a1; 29} 30

$numに任意の数値を指定すれば全通り表示されます。
($numは奇数でもいけます)

投稿2018/09/26 04:33

編集2018/09/26 05:45
yambejp

総合スコア114771

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naonao11

2018/09/26 04:35

申し訳ございません!ありがとうございます!$bです。。。
yambejp

2018/09/26 04:37

念の為、[[1,2],[3,4]]と[[3,4],[1,2]]は実質同じものですが、$bでよいのですね?
naonao11

2018/09/26 04:38

はい、そうです!
yambejp

2018/09/26 05:47

追記しておきました。 n個の要素の配列からr個抜きだす方法を考えればよいでしょう。 (考えるのが面倒なので他人のをパクってますが・・・)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問