A~Eの5種類の文字から、10桁の文字列を作り、
※AAAAAAAAAA、AAAAAAAAAB、AAAAAAAAAC~EEEEEEEEEEまでの9,765,625通りかな?
その文字列の中に、A,B,Cの文字が含まれる並びは何通りあるのか
※AABBCCDDEE,ABCDEABCDE,AAAAAABCDE,というような並びはOKですね。
※AABBDDEEAAは、Cが入っていないのでダメです。
を、知りたいです。
計算式と答えを頂けると助かります。
よろしくお願いいたします。
No.1
- 回答日時:
A, B, C の各々の文字を、必ず1つ以上含む文字列ということですね?
まっとうに数えると、A, B, C がどこに入るかによって、重複したものを数えないようにするのはけっこう複雑になります。
そういうときには、「A, B, C のどれか一つをまったく含まない文字列」を数えて、トータルから差し引くようなやり方が一番簡単でしょう。
「A をまったく含まない文字列」は、「B~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
です。
同じく「B をまったく含まない文字列」は、「A, C~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
「C をまったく含まない文字列」は、「A, B, D~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
です。
ということで、「A, B, C のどれか一つをまったく含まない文字列」は
1,048,576 × 3 = 3,145,728
です。
これをトータルの文字列数「5^10 = 9,765,625」から引いて、
9,765,625 - 3,145,728 = 6,619,897
かな?
No.3
- 回答日時:
No.1です。
#2さん>「A と B の両方を含まない」などが存在することを忘れてはだめです>#1.
ああ、そうでした。いつも、そういうところが抜けるんですよ。
下の絵のような関係で、No.1の3つの「含まないケース」を足し合わせると、ダブルカウント、トリプルカウントが出るのですね。
「A をまったく含まない文字列」は、「B~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
「B をまったく含まない文字列」は、「A, C~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
「C をまったく含まない文字列」は、「A, B, D~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
また、
「AもBも含まない」は、「C~Eの3種類の文字から、10桁の文字列を作る」ということですから
3^10 = 59,049
「AもCも含まない」は、「B, D~Eの3種類の文字から、10桁の文字列を作る」ということですから
3^10 = 59,049
「BもCも含まない」は、「A, D~Eの3種類の文字から、10桁の文字列を作る」ということですから
3^10 = 59,049
「AもBもCも含まない」は、「D~Eの2種類の文字から、10桁の文字列を作る」ということですから
2^10 = 1,024
よって「A, B, C をいずれも含まない文字列」は
1,048,576 × 3 - (59,049 - 1,024) × 3 - 1,024 = 2,970,629
です。
これをトータルの文字列数「5^10 = 9,765,625」から引いて、「A, B, C をすべて含む文字列」は
9,765,625 - 2,970,629 = 6,794,996
今度は間違いないと思いますが・・・。
No.4
- 回答日時:
#3で、考え方は途中まで正しいのですが、以下の計算部分で、
>よって「A, B, C をいずれも含まない文字列」は
> 1,048,576 × 3 - (59,049 - 1,024) × 3 - 1,024 = 2,970,629
これは、「AもBもCも含まない」が2回カウントされます。
この部分は、1,048,576 × 3 - (59,049 - 1,024) × 3 - 1,024 ×2 とすべきです。
あるいは、こうした場合は、2つ重なった部分を引いて、3つ重なった部分を足すのが公式の様なものなので、
それを覚えていれば、「A, B, C をいずれも含まない文字列」は
1,048,576 × 3 -59,049× 3 + 1,024 = 2,969,605 となります。
「A, B, C をすべて含む文字列」は
9,765,625 - 2,969,605 = 6,796,020 となります。
No.5
- 回答日時:
No.1&3です。
ああ、まだ間違えていましたね。
#4さん、フォローありがとうございます。
組合せの問題で、重複を見つけ出して除外するのは、どうも苦手です・・・。
No.6ベストアンサー
- 回答日時:
No.1&3&5です。
いろいろとゴタゴタしましたので、全体を再度統合して完成版の回答にします。*****以下、回答*****
A, B, C をすべて1つ以上含む文字列ということですね?
まっとうに数えると、A, B, C がいくつ、どこに入るかによって、重複したものを数えないようにするのはけっこう複雑になります。
そういうときには、「A, B, C のいずれも含まない文字列」をトータルから差し引くようなやり方が一番簡単でしょう。
ということで、
「A をまったく含まない文字列」は、「B~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
「B をまったく含まない文字列」は、「A, C~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
「C をまったく含まない文字列」は、「A, B, D~Eの4種類の文字から、10桁の文字列を作る」ということですから
4^10 = 1,048,576
これら3つは、各々独立なものではなく、たとえば「Aを含まない文字列」の中には「Bを含まない文字列」もあるので、一部重複しています。従って、重複したものをダブルカウントしないようにしないといけません。
下記の図から上記3つのケースで重複しているものを調べると、
「AもBも含まない」は、「C~Eの3種類の文字から、10桁の文字列を作る」ということですから
3^10 = 59,049
「AもCも含まない」は、「B, D~Eの3種類の文字から、10桁の文字列を作る」ということですから
3^10 = 59,049
「BもCも含まない」は、「A, D~Eの3種類の文字から、10桁の文字列を作る」ということですから
3^10 = 59,049
「AもBもCも含まない」は、「D~Eの2種類の文字から、10桁の文字列を作る」ということですから
2^10 = 1,024
よって「A, B, C のいずれも含まない文字列」は
1,048,576 × 3 - 59,049 × 3 + 1,024 = 2,969,605
です。
これをトータルの文字列数「5^10 = 9,765,625」から引いて、「A, B, C をすべて1つ以上含む文字列」は
9,765,625 - 2,969,605 = 6,796,020
となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- オープンソース 【ChatGTPのオープンソースソフトウェアを解析したことがある方、教えてくださ 2 2023/03/08 18:57
- Excel(エクセル) Excelの計算式で質問です。 3 2022/06/21 21:58
- WordPress(ワードプレス) Wordpressの記事URLを自由に決めたい 3 2022/06/02 12:05
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで=より左の文字を一括で...
-
エクセルで文字列をtxtファイル...
-
エクセルでアルファベットか数...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
sedなどで、特定の文字列の後の...
-
C言語で文字列の中の文字列のカ...
-
Left関数とRight関数を合わせた...
-
アクセスで特定の数字以外(複...
-
Excelで3E8を3.00E+8にしない方...
-
【Excel VBA】複数ある特定の文...
-
マクロ処理でのループの記述に...
-
VBA2005 16進を2桁で表示したい。
-
Excelで偶数行だけ文字列を数え...
-
VBScript 数値の少数化
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列の最大値を抽...
-
StringGridで選択した箇所の文...
-
textboxユーザーコントロールの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
[C言語]fputsとfprintfの違い
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
Excelはなんで先頭の0を消すん...
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
sedなどで、特定の文字列の後の...
-
【Excel VBA】複数ある特定の文...
-
OnTime 使用時のプロシージャへ...
おすすめ情報