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

use*_*536 3 smalltalk

在java中,或者C#填充2d数组是可能的,有两个嵌套for循环,但在smalltalk我似乎无法找到相同的方法.任何人都可以帮我吗?

阵列填充

Uko*_*Uko 5

您可以使用Matrix和创建它:

| random |
random := Random new.
^ Matrix
   rows: rowNumber
   columns: columnNumber
   tabulate: [ :i :j | random next ]
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

| random matrix |
random := Random new.
matrix := Matrix rows: rowNumber columns: columnNumber.
martix indicesCollect:  [ :i :j | random next ].
^ matrix
Run Code Online (Sandbox Code Playgroud)