これは単純な、一口サイズ(バイトサイズ?)のコードゴルフです。10未満の正の整数の空でないリストが与えられると、ブロック対角行列を出力します。リストはブロックのサイズを順番に指定します。ブロックは10未満の正の整数で構成する必要があります。したがって、入力として指定された場合
[5 1 1 2 3 1]
たとえば、出力は次のようになります。
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1
または
1 2 3 4 5 0 0 0 0 0 0 0 0
6 7 8 9 1 0 0 0 0 0 0 0 0
2 3 4 5 6 0 0 0 0 0 0 0 0
7 8 9 1 2 0 0 0 0 0 0 0 0
3 4 5 6 7 0 0 0 0 0 0 0 0
0 0 0 0 0 8 0 0 0 0 0 0 0
0 0 0 0 0 0 9 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 0 0 0 0
0 0 0 0 0 0 0 3 4 0 0 0 0
0 0 0 0 0 0 0 0 0 5 6 7 0
0 0 0 0 0 0 0 0 0 8 9 1 0
0 0 0 0 0 0 0 0 0 2 3 4 0
0 0 0 0 0 0 0 0 0 0 0 0 5
またはそのようなもの。マトリックス内の要素は(単一の)スペースで区切られ、行は(単一の)改行で区切られている必要があります。行の先頭または末尾にスペースがあってはなりません。末尾の改行を印刷する場合と印刷しない場合があります。
STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して、便利な文字列またはリスト形式で入力を取得して、関数またはプログラムを作成できます(前処理されていない限り)。ただし、たとえば、関数から返されるのではなく、結果をSTDOUT(または最も近い代替)に出力する必要があります。
ブロック対角行列を作成するために設計された組み込み関数を使用しないでください。
これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。
リーダーボード
配列ベースの言語(JやAPLなど)がここで優位に立つことを期待していますが、選択した言語でできる限り人々がやろうとするのを思いとどまらせたくありません。そこで、ここに、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットがあります。それでは、後者にスポットを当ててみませんか?
回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。
# Language Name, N bytes
N
提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:
# Ruby, <s>104</s> <s>101</s> 96 bytes
[:=/~]#<\
あなたのスコアにカウントされるとは思わない。また、=/~@#<\
余分な2バイトが削られます。