• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:組み合わせに関するC言語プログラム)

C言語プログラムで組み合わせを特定する方法

このQ&Aのポイント
  • C言語プログラムで集合Aと集合Bの要素の組み合わせを特定する方法について学びます。
  • 集合Aは集合Bの部分集合であり、同じラベルの要素のIDを特定します。
  • 具体的な組み合わせの例として、集合Aのラベルと集合BのIDを使用して4通りの組み合わせを特定します。

質問者が選んだベストアンサー

  • ベストアンサー
  • sweet76
  • ベストアンサー率39% (584/1497)
回答No.1

自分がその2つのデータを与えられたとして、実際どうやって、欲しいIDを取りだすか、紙の上でやってみればいいんです。 その手順を、同じ処理を繰り返していればループ文に置き換えられるし、比較していればifや比較の関数に置き換えられるでしょう。 場合分けが必要なら、caseに置き換えてもいいし。 そうするとデータを何に格納しておくと楽かも決まる。 というのが、一般的かどうかはわかりませんが、私が、すぐにプログラムとして思いつかないときのやり方です。 プログラムかいちゃえば答えは出るけど、書き方は一つじゃないし、学校の課題とかだったら嫌ので考え方のみですが。

mintia12
質問者

お礼

なんとか出来ました! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

>集合A: >ID{2,3,1,0} これは必要なんでしょうか? ラベルさえあればいいような気もするんですけど…。

mintia12
質問者

補足

このIDを使って、やりたいことがあるのでどうしても必要なのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【組合せ】1:2の作表

    添付画像は分かりにくいので文字で説明しますが、 二項対立の表で対応した組合せから、さらに同じ要素の組み合わせで3通りの組み合わせを作りたいのです。 たとえばX軸=AとY軸=Bと対応したマトリックス部分を(1)とする。(表1) 表1で対応したものと同じ要素(A~E)でさらに対応させる。(表2) しかし重複部分を探すのに難儀しています。 表1は斜線を境に同じ組み合わせが対立していますが、表2の場合も法則を使い探したいのですが…

  • 数学の「組み合わせ」を求めるプログラム

    お世話になっています。 早速ですが、数学の「組み合わせ」を求めるプログラムを作成中です。 例えば、1~6の数字の中から4個取り出す場合、パターンとしては、 (1,2,3,4) (1,2,3,5) (1,2,3,6) (1,2,4,5) (1,2,4,6) (1,2,5,6) (1,3,4,5) (1,3,4,6) (1,3,5,6) (1,4,5,6) (2,3,4,5) (2,3,4,6) (2,3,5,6) (2,4,5,6) (3,4,5,6) の15パターンが挙げられます。 「1~aの数字の中からb個取り出す」場合、上記の例だとa=6、b=4ですが、 このようにa,bにそれぞれ値を与えると、上記のようにすべての組み合わせを 求めてくれるPHPプログラムを作成中です。 実現方法、ソースコードなど、ご教授いただけないでしょうか。 よろしくお願い申し上げます。

    • 締切済み
    • PHP
  • C言語での並び替えのプログラム

    A[6][5]={{"abei"}, {"aceh"}, {"adeg"}, {"aef"}, {"bcfi"}, {"bdfh"}}; と配列があるとします。 (a).A[1][5]の文字列とA[2][5]の文字列を比較して、"abceih"という組み合わせた文字列を作り、その文字列の数を出します(この場合6個)。次に、A[3][5]のA[4][5]を比較して組み合わせて文字列を作り、その文字列の数を出します。A[5][5]とA[6][5]も同じように比較して組み合わせて文字列を作り、その文字列の数を出し、最後にそのすべての数の和を出します。 (b).この配列を並べ変えて(a)をします。 並び替え方は配列6個のとき 1.(1)(2)(3)(4)(5)(6) 2.(1)(2)(3)(5)(4)(6) 3.(1)(2)(3)(6)(4)(5) 4.(1)(3)(2)(4)(5)(6) 5.(1)(3)(2)(5)(4)(6) 6.(1)(3)(2)(6)(4)(5) 7.(1)(4)(2)(3)(5)(6) 8.(1)(4)(2)(5)(3)(6) 9.(1)(4)(2)(6)(3)(5) 10.(1)(5)(2)(3)(4)(6) 11.(1)(5)(2)(4)(3)(6) 12.(1)(5)(2)(6)(3)(4) 13.(1)(6)(2)(3)(4)(5) 14.(1)(6)(2)(4)(3)(5) 15.(1)(6)(2)(5)(3)(4) の15通りになります。 この配列の並びを前から配列を2つずつ取り出して比較すれば全組み合わせが完了したことになります。 この15通りの組み合わせの中で総和が一番少なくなる組み合わせ方を探すプログラムを作りたいのです。 そしてこのとき、配列が最大で40個までとなることがあるとするとその並べ替えのプログラムはどうなるでしょうか? 比較するプログラムは作ることに成功しましたが並べ替えのプログラムがうまく作れません誰か教えていただけないでしょうか?

  • C言語のプログラムを作りました。

    以下のプログラムは動くかどうか、確認して頂けませんか? おかしい部分があれば指摘して下さい。 また、自分で考えたのですが、このプログラムはどのように考えられたのか、作成方針は考えられますでしょうか? なぜ聞くかというと、皆さんが考えられるように自分も考えているのかどうか、作成方針を聞くことにより判断したいのです。 →作成方針を記述の上、プログラムについてご指摘の方、よろしくお願い致します。 #include<stdio.h> main() { int a,b,c; b=0; c=1; printf("a="); scanf("&d",&a); do{ c=c+1; b=a%c; }while(!(b==0)); if(c==a); printf("sosu-desu n); }else{ printf("sosu-denai n); } }

  • C言語

    このプログラムを作りたいのですが… ??????????? 物の総数を入れてください:12 取り出す物の数を入れてください:2 12個の異なる物から2個をを取り出す組み合わせの数は66です ?????????????? ここに出てくる数字は scanfで入れます。 だいたい こんな感じだと思うのですが… ***********の部分が わかりません。 ??????????????? #include<stdio.h> int factorial(int m,int r) { ************** } int main(void) {int a,b; printf("物の総数を入れてください:") scanf("%d",&a); printf("取り出す物の数を入れてください:") scanf("%d",&b); printf("12個の異なる物から2個を取り出す組み合わせの数は%dです。\n",a,b,factorial(a,b));) ?????????????? お願いします(>_<)

  • 集合の問題

    次の問題の解答をお願いします。 S={a,b,{a,b}}で、以下の関係が成り立つ場合は○、成り立たない場合は×を記入せよ。 (1){a,b}はSの部分集合である (2)aはSのべき集合の要素である (3)φはSの要素である (4){{a,b}}はSのべき集合の要素である (5){a,{b}}はSのべき集合の部分集合である (6){a,b}はSのべき集合の部分集合である (7){a,b}はSのべき集合の要素である (8)aはSの部分集合である (9)φはSのべき集合の部分集合である (10)φはSのべき集合の要素である (11){φ,{a}}はSの部分集合である (12){{a},{b}}はSのべき集合の要素である

  • c言語のプログラムです

    2つの生の整数の割り算a÷bはaからbを繰り返し引いていき、引くことが出来なくなるまでの回数を商、その時の残りを剰余をすることで、引き算だけを用いて実現することができる。このことを考慮して、while文と引き算だけを用いて割り算を実現しなさい。という問題なんですけどどのようにプログラムを作っていいやらわかりません 一様ヒントはあります ・変数としては、入力する二つの整数に対応する変数m,n、商に対応する変数q、剰余に対応する変数rを使うとよいでしょう。すべて整数ですのでintで宣言する。 皆さんのご協力お願いします

  • 組み合わせのプログラム

    組み合わせのプログラムを考えています。 例として tray[0]=1000, tray[1]=500, tray[2]=300 があるとします。 各配列の値を使って、その合計値が例えば「1000 以下」と言う条件に当てはまる組み合わせは 1000, 800(500+300), 500, 300, (0) です(各配列の値は1回だけ使用可能とします)。 1つの tray に対して、それを「足すか」「足さないか」の2通りが考えれるので、全体で2^n個(trayの数をnとする)の組み合わせを調べれば良いと思っています(これは間違っているのかな?!) プログラムのイメージは以下のような感じです。 int sum,x; (ここは x を使って if か for を使った足すか足さないかの条件ではないか!?){ sum=0; for(int i=0;i<n;i++){ sum+=tray[i]*x;//ここでさきほどの x を使うのではないか、x に 0 or 1 が入ってくるイメージです if(指定した数字(条件)>=sum) System.out.print("ここで組み合わせの出力"); } } 初歩的な質問でお恥ずかしいです。 意味的に、かなりはしょった部分があるので、言いたい意味が分からないなど、ご質問がある方はご遠慮なくして下さい。 色々頑張ってみたのですが無理でした、もしご解答いただける方がいればすごく助かります。 宜しくお願いします。

    • ベストアンサー
    • Java
  • 集合について。

    Aを100以下の自然数の集合とする. また,50以下の自然数kに対し, Aの要素でその奇数の約数のうち最大のものが2k-1となるものからなる集合Akをとする. このとき,次の問いに答えよ. ①Akを求めよ. ②Aの各要素は, A1からA50までの50個の集合のうちのいずれか1つに属することを示せ. ③Aの部分集合Bが51個の要素からなるとき, y/xが整数となるようなBの異なる要素x.yが存在することを示せ. ④50個の要素からなるAの部分集合Cで, その中にy/xが整数となるような異なる要素x.yが 存在しないものを1つ求めよ.この問題をご教授頂けると幸いです。

  • このC言語プログラムでどこをいじればいいのか教えて下さい。

    このC言語プログラムでどこをいじればいいのか教えて下さい。 //2 つの整数を入力し、和、差、積、商を計算し表示する。 #include<stdio.h> int main(void) { int a,b,wa,sa,seki,syou; scanf("%d %d",&a,&b); wa=a+b; sa=a-b; seki=a*b; syou=a/b; printf("%d+%d=%d\n",a,b,wa); printf("%d-%d=%d\n",a,b,sa); printf("%d*%d=%d\n",a,b,seki); printf("%d/%d=%d\n",a,b,syou); return (0); } これを繰り返し実行する形にしたいです。できれば今勉強中のwhileでお願いします。 また間違っている部分、指摘などありましたら宜しくお願いします。 大きな値をいれると足し算がダメになったり、割り算がおかしくなります。 また実数の時はどうなのかなど教えて下さい。

このQ&Aのポイント
  • パソコンのファイル印刷をしようとするとA4サイズにするはずがその半分のサイズで印刷されて出てきます。色々原因を見てますが直りません。
  • 質問者はパソコンのファイル印刷をしようとしているが、A4サイズにするはずがその半分のサイズで印刷されてしまう問題が発生している。色々な原因を調べているが解決できていない。
  • 問題:パソコンのファイル印刷をしようとするとA4サイズにするはずがその半分のサイズで印刷されて出てくる。色々な原因を調査したが解決できない。
回答を見る