php - 随机填充网格/数组
问题描述
我有一个由零 (0) 组成的数组 MxN。我需要用随机位置填充 20 个事实 (1)。
一个例子
1 1 1 0 1 0 1
0 0 0 0 0 0 0
0 1 0 1 0 1 1
0 0 0 0 1 1 1
0 0 1 0 0 0 0
0 0 1 0 1 1 0
1 1 0 1 1 0 0
我用非确定算法填充它:
$amountUnits = 20;
while($amountUnits > 0) {
$i = rand(0, $M-1);
$j = rand(0, $N-1);
if(!$grid[$i][$j]) {
$grid[$i][$j] = 1;
$amountUnits--;
}
}
但它是在随机时间内解决的。我怎样才能通过种子或其他东西来填充它?我在哪里可以读到这个问题?
请原谅我的英语不好。
谢谢!
解决方案
用 1 填充一维数组 x 次,其余的用 0 填充。 shuffle () 对数组进行随机播放。array_chunk 对数组进行划分,以便创建一个矩阵(二维数组)。
$rows = 7;
$cols = 7;
$fillTrue = 20;
$arr = array_fill(0,$fillTrue,1)+array_fill($fillTrue, $rows*$cols-$fillTrue,0);
shuffle($arr);
$arr = array_chunk($arr,$cols);
推荐阅读
- puppeteer - 在 Puppeteer 中,SerializedAxNode 的作用是什么?
- bash - 参数列表太长 curl
- git - 我可以在 GIT 中交换文件名吗?
- svelte - 在 svelte 中的 2 个子组件之间传递数据的正确方法是什么
- typescript - 从 .d.ts 文件而不是 .js 文件中的 JSDoc 输出类型声明
- r - 无法在 Shiny 模块中触发 bsModal
- swift - 不同类型的结构哈希
- build - 构建、测试和部署 cosmwasm 合约到 terra netweork 的最佳工具链是什么?
- python - 使用 Python 从 word 文档中删除格式化的图像
- reactjs - React Context:如何将它与对象一起使用