引数で指定された個数の要素を組み合わせた表を生成するプログラム

1 : 2021/09/25(土) 14:38:08.928 ID:mHljHtxi0
こんなプログラムを書きたい。アルゴリズムを示せ。

・1を指定。

1

・2を指定。

11 12 21 22
11 11 11 11

11 12 21 22
12 12 12 12

11 12 21 22
21 21 21 21

11 12 21 22
22 22 22 22

・3を指定。

111 112 121 122 211 212 221 222
111 111 111 111 111 111 111 111

111 112 121 122 211 212 221 222
112 112 112 112 112 112 112 112
以下略

俺も今から考える。

2 : 2021/09/25(土) 14:38:50.394 ID:mHljHtxi0
・3を指定は間違っていた。訂正

111 112 121 122 211 212 221 222
111 111 111 111 111 111 111 111
111 111 111 111 111 111 111 111

111 112 121 122 211 212 221 222
112 112 112 112 112 112 112 112
111 111 111 111 111 111 111 111

6 : 2021/09/25(土) 14:40:25.173 ID:D8Gf3UYla
>>2
3を指定したら3が含まれてなきゃおかしくね?
10 : 2021/09/25(土) 14:42:21.997 ID:mHljHtxi0
>>6
もちろん3も含むパターンも出力する必要がある。
最初のほうだけ出力したからまだ出てきていないだけ。
3 : 2021/09/25(土) 14:39:14.170 ID:D8Gf3UYla
普通にifで条件分岐するだけでは
結果出力は固定なんだろ?
7 : 2021/09/25(土) 14:40:38.900 ID:mHljHtxi0
>>3
自分で書くの面倒。
n^3パターンある。
9 : 2021/09/25(土) 14:41:15.471 ID:mHljHtxi0
>>7
間違えた。n^(n^2)パターンだな。
4 : 2021/09/25(土) 14:39:55.889 ID:mHljHtxi0
n×nの表で、取りうる値はn。そのすべての組み合わせを生成。
5 : 2021/09/25(土) 14:40:12.331 ID:ZOqnsGf40
お前そこまで頑張って入力すんならconstに全部の結果入れとけば
8 : 2021/09/25(土) 14:40:58.580 ID:4SFjMqUk0
よく分からんけどbit全探索でいけそう
11 : 2021/09/25(土) 14:42:45.182 ID:2YUjLbb30
5分あれば作れそう
13 : 2021/09/25(土) 14:44:14.284 ID:mHljHtxi0
>>11
そこまで大変ではないと思うが、ループの深さが一定ではない。そこをどうクリアするか。
14 : 2021/09/25(土) 14:45:15.877 ID:D8Gf3UYla
>>13
動的にすればいいのでは
15 : 2021/09/25(土) 14:45:25.221 ID:2YUjLbb30
>>13
要素n個のカウント用配列作れ
16 : 2021/09/25(土) 14:45:50.133 ID:D8Gf3UYla
>>13
ミス
再起関数にすれば解決では
19 : 2021/09/25(土) 14:47:07.713 ID:mHljHtxi0
>>16
たぶん再起を使うことになる。
それをコードに落とせるレベルまで具体化せよ、という問題。
12 : 2021/09/25(土) 14:43:27.116 ID:Cu0B/MRO0
表の見方が分からん
2のケースで説明してくれ
17 : 2021/09/25(土) 14:46:21.947 ID:mHljHtxi0
>>12
引数をnとすると、n×nの表を生成する。各項目は1~nのどれか。

11
11 がその1つ。

12
11 はもう1つ。

こういう表をすべて生成する。

18 : 2021/09/25(土) 14:46:40.187 ID:0ZH5dwda0
for文をwhileループすればおk?
20 : 2021/09/25(土) 14:48:04.936 ID:mHljHtxi0
>>18
そこまで単純ではないと思われる。
俺が見落としている可能性はあるが。
25 : 2021/09/25(土) 14:52:13.618 ID:Cu0B/MRO0
表の形式は>>1のままがいいの?
ラスタースキャンしてリスト化してもよい?
28 : 2021/09/25(土) 14:53:34.474 ID:mHljHtxi0
>>25
ラスタースキャンしてリスト化??
ちょっと何を言ってるのか分からない。俺とお前の間に大きなギャップがあるように感じる。
33 : 2021/09/25(土) 14:54:58.784 ID:Cu0B/MRO0
>>28
11
21

[1,1,2,1]ってリストにしてもいいかって話
37 : 2021/09/25(土) 14:56:42.362 ID:D8Gf3UYla
>>33
pythonだったら([1,2]、[2,2])みたいなのも出来るけどpythonでええか?
26 : 2021/09/25(土) 14:52:38.491 ID:mHljHtxi0
ちなみに、生成した表を色々操作したいから、メモリ構造として保持してくれ。
表示だけうまくやるのは要件を満たしません。

ユーザが追加要件を出す気持ちが少し分かった。

31 : 2021/09/25(土) 14:54:38.430 ID:D8Gf3UYla
>>26
メモリは動的にすればいいから楽やろ
nが決まれば大きさが決まるんだからその後に配列作ってそこにぶち込んだ後に表示でどうや?
10万で請け負うで
35 : 2021/09/25(土) 14:55:42.874 ID:mHljHtxi0
>>31
お前には書くのは難しいのでは?
38 : 2021/09/25(土) 14:57:15.003 ID:D8Gf3UYla
>>35
再帰は何回か書いたことあるから分かるで
27 : 2021/09/25(土) 14:52:50.420 ID:6AmGBI3q0
例えば2の場合
単純に1,2からなる8個の数の列を全パターン上げてるだけではないの?
30 : 2021/09/25(土) 14:54:35.353 ID:mHljHtxi0
>>27
よく分からないが、表は16パターンあるし、それをすべて生成する必要がある。
29 : 2021/09/25(土) 14:54:05.928 ID:Cu0B/MRO0
引数によってネストの深さ変わるのがネックなのかな
32 : 2021/09/25(土) 14:54:57.058 ID:mHljHtxi0
>>29
そこが難しいところだな。
34 : 2021/09/25(土) 14:55:24.082 ID:D8Gf3UYla
>>29
それは再帰関数でクリアできると思うよ
36 : 2021/09/25(土) 14:56:12.188 ID:mHljHtxi0
>>34
だから、>>19

コメント

PAGE TOP
タイトルとURLをコピーしました