知恵袋の男女が並ぶ場合の数の問題をJavaで解いてみました。(^_^;
男子2人、女子3人が一列に並ぶとき次の並びは何通りか
女子3人が隣り合う。
そういえば、「男女」と言えば、・・・。(^_^;
●男女踊ってみた@いとくとら
● Danjo1.java
/* * Danjo1.java * */ class Danjo1 { static boolean nextPerm(char[] p, int n, int r) { int i, j; char t; if(r <= 0 || n < r) return(false); for(i = r + 1; i <= n-1; i++) for(j = i; j >= r + 1 && p[j-1] < p[j]; j--){ t = p[j]; p[j] = p[j-1]; p[j-1] = t; // swap(p,j,j-1); } for(i = n - 1; i > 0 && p[i-1] >= p[i]; i--); if(i==0) return(false); for(j = n - 1; j > i && p[i-1] >= p[j]; j--); t = p[j]; p[j] = p[i-1]; p[i-1] = t; // swap(p,j,i-1); for(j=n-1; i< j; i++, j--){ t = p[i]; p[i] = p[j]; p[j] = t; // swap(p,i,j); } return(true); } public static void main(String[] args) { final String P = "ABCDE"; final String M = "男男女女女"; char[] p = P.toCharArray(); // 順列生成用 int n = p.length; long tm = System.nanoTime(); // Timer Start int count = 0; do{ String s = new String(p); s+=" "; for(int i=0; i< n; i++) s+=M.charAt(P.indexOf(p[i])); if(!s.contains("女女女")) continue; // チェックをくぐり抜けたものだけをカウントして表示 count++; System.out.println(s); }while(nextPerm(p,n,n)); System.out.println(count); tm=System.nanoTime()-tm; // Timer Stop System.out.printf("Runtime : %.3f [sec]\n",(double)tm/1e9); } }
●実行結果
ABCDE 男男女女女 ABCED 男男女女女 ABDCE 男男女女女 ABDEC 男男女女女 ABECD 男男女女女 ABEDC 男男女女女 ACDEB 男女女女男 ACEDB 男女女女男 ADCEB 男女女女男 ADECB 男女女女男 AECDB 男女女女男 AEDCB 男女女女男 BACDE 男男女女女 BACED 男男女女女 BADCE 男男女女女 BADEC 男男女女女 BAECD 男男女女女 BAEDC 男男女女女 BCDEA 男女女女男 BCEDA 男女女女男 BDCEA 男女女女男 BDECA 男女女女男 BECDA 男女女女男 BEDCA 男女女女男 CDEAB 女女女男男 CDEBA 女女女男男 CEDAB 女女女男男 CEDBA 女女女男男 DCEAB 女女女男男 DCEBA 女女女男男 DECAB 女女女男男 DECBA 女女女男男 ECDAB 女女女男男 ECDBA 女女女男男 EDCAB 女女女男男 EDCBA 女女女男男 36 Runtime : 0.019 [sec]
※参考URL
●知恵袋の男女が並ぶ場合の数の問題をJavaで解いてみた。(2)
●知恵袋の男女が並ぶ確率の問題をJavaで解いてみた。
- 作者: 中山清喬,国本大悟
- 出版社/メーカー: インプレス
- 発売日: 2014/08/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (19件) を見る
- 作者: 川場隆
- 出版社/メーカー: 秀和システム
- 発売日: 2009/10/23
- メディア: 単行本
- 購入: 14人 クリック: 162回
- この商品を含むブログ (33件) を見る
Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング (impress top gear)
- 作者: Cay S. Horstmann,柴田芳樹
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る