1

私はこれをforループにしています:

 for i in 0...4
  for j in 0...4
      puts "#{i}:#{j}"
  end
end

出力:

0:0
0:1
0:2
0:3
1:0
1:1
1:2
1:3
2:0
2:1
2:2
2:3
3:0
3:1
3:2
3:3

しかし、私はこの結果のマトリックスを生成するのが好きです。これを生成するには、すべて0:を1行に、すべて1:を1行に入れる必要があります。

0:0 0:1 0:2 0:3
1:0 1:1 1:2 1:3
2:0 2:1 2:2 2:3
3:0 3:1 3:2 3:3

何か案は?ありがとう

4

2 に答える 2

3

ドキュメントで述べられているように、putsは「レコード区切り文字(通常は改行)を、まだ改行シーケンスで終わっていないものの後に書き込みます」。したがって、代わりに印刷を使用する必要があります(ただしputs、各行の印刷が完了したら、それでも新しい行に移動するために使用します)

for i in 0...4
  for j in 0...4
      print "#{i}:#{j} "
  end
  puts
end
于 2012-12-21T11:08:54.117 に答える
1
matrix = (0..3).to_a.repeated_permutation(2).each_slice(4)
print matrix.map{|row| row.map{|column| column.join(":")}.join(" ")}.join("\n")
于 2012-12-21T11:17:07.887 に答える