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