Smalltalk如何用随机数填充2d数组?

时间:2016-02-23 22:33:17

标签: smalltalk

在java中,或者C#可以使用两个嵌套的for循环填充2d数组,但在smalltalk中,我似乎无法找到相同的方法。 谁能帮助我?

array filling

1 个答案:

答案 0 :(得分:5)

您可以使用Matrix并将其创建为:

| random |
random := Random new.
^ Matrix
   rows: rowNumber
   columns: columnNumber
   tabulate: [ :i :j | random next ]

其中i和j是元素的索引(我在示例中没有使用)

如果你真的想用2D阵列做点什么我建议你做这样的事情:

| random |
random := Random new.
^ (1 to: rowNumber) collect: [ :i | 
   (1 to: columnNumber) collect: [ :j |
      random next ]

您还可以在创建后遍历矩阵:

| random matrix |
random := Random new.
matrix := Matrix rows: rowNumber columns: columnNumber.
martix indicesCollect:  [ :i :j | random next ].
^ matrix