この課題では、特定の方法で解決する必要がある4つの異なるが多少関連するタスクを取得します。最初にタスクを説明し、次にそれを解決する方法の説明に従います。
コードでは、4つのタスクすべてに対して、入力として2つの正の整数を使用する必要n,m
がありn<m
ます。すべてのタスクは同じ言語で解決する必要があります。行列の方向はオプションです(n行m列は、「n行、m列」または「n列、m行」と解釈される場合があります)。
タスク1:
要素で構成されるベクトル/リストを作成(および出力/印刷)しますn, n+1 ... m-1, m
。したがって、の場合n=4, m=9
、次のように出力する必要があります4,5,6,7,8,9
。
タスク2:
次のような行列/配列/リストのリスト(または同等のもの)を作成(および出力/印刷)します。
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
n=4, m=9
あなたが出力します:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
タスク3:
n行m列の乗算テーブルを(適切な形式で)作成(および出力/印刷)します。例n=4, m=9
:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
5 10 15 20
6 12 18 24
7 14 21 28
8 16 24 32
9 18 27 36
タスク4:
タスク3の乗算テーブルの要素で構成されるベクトル/リストを出力/印刷します。昇順でソートされ、重複する値を保持します。の場合n=4, m=9
、次を出力する必要があります1, 2, 2, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 9, 9, 10, 12, 12, 12, 14, 15, 16, 16, 18, 18, 20, 21, 24, 24, 27, 28, 32, 36
。
チャレンジ:
さて、上記のすべてのタスクは非常に簡単です。ここでの本当の課題は、タスク2のコードがタスク1のコードで始まり、タスク3のコードがタスク2のコードで始まり、タスク4のコードがタスク3のコードで始まることです。
より明確にするために:
タスク1のコードが(Octaveで動作する)であるとします:
@(n,m)(n:m)
次に、タスク2のコードは次のようになります(Octaveで動作します)。
@(n,m)(n:m)+(0:m)'
タスクTask 3のコードは次のとおりでなければなりません(Octaveでは機能しません)。
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
最後に、タスク4のコードは次のとおりでなければなりません(Octaveでは機能しません)。
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
これはcode-golfであるため、各言語のタスク4の最短コードでの提出が優先されます。いつものように:説明を強くお勧めします。
0<n<m
か0<=n<m
?
>2;
て、前のタスクのコードが基本的にノーオペレーションになるようにすることは許されますか?