List 如何制作随机数的形状

List 如何制作随机数的形状,list,j,List,J,在本例中,我试图创建一个随机数(0或1)的形状,因为我试图创建一个扫雷场 我曾尝试使用“?”符号随机接收它,但它通常会变成一种不规则的重复模式,这对我来说并不令人满意: 5 5 $ ? 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 因此,我尝试了其他方法,比如从索引中提取数字(这称为滚动)。但这会返回随机小数。对代码的其他小改动也导致了这些随机小数。我自己也做过几次。关键是当您应用?时。如果在创建矩阵后应用它,则会得到所需的结果

在本例中,我试图创建一个随机数(0或1)的形状,因为我试图创建一个扫雷场

我曾尝试使用“?”符号随机接收它,但它通常会变成一种不规则的重复模式,这对我来说并不令人满意:

5 5 $ ? 0 1

0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0

因此,我尝试了其他方法,比如从索引中提取数字(这称为滚动)。但这会返回随机小数。对代码的其他小改动也导致了这些随机小数。

我自己也做过几次。关键是当您应用
时。如果在创建矩阵后应用它,则会得到所需的结果

我们知道
?2
返回随机生成的
1
0

   ? 2
0
   ? 2
1
   ? 2
0
因此,如果我们创建一个5X5的
2
矩阵

   5 5 $ 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
然后我们将
应用于矩阵中的每个
2
,您将得到每个位置的随机
1
0

   ? 5 5 $ 2 NB. first 5 X 5 matrix of random 1's and 0's
0 0 0 1 1
1 1 1 0 1
0 0 0 0 1
1 1 1 1 0
1 1 1 0 0

   ? 5 5 $ 2  NB. different 5 X 5 matrix of random 1's and 0's
0 0 0 1 1
1 0 1 1 0
0 0 0 1 1
1 0 0 1 0
1 1 1 0 0

我花了30分钟来尝试,就是这么简单。。。嗯,我仍然不明白为什么会这样,但它工作得很好,谢谢。对于
x?@$y
,还有一些特殊的、更快的代码,尤其是当
y=2
时。下面鲍勃的答案回答了你当前的问题。如果您还没有看到,J应用程序库中的扫雷器实现可能会引起兴趣: