You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的APL表达式返回1、2矩阵而非预期的0、1矩阵?

APL随机矩阵结果不符预期的原因

问题还原

你的APL表达式:

?(1 2 × 4) ⍴2

实际输出的随机矩阵元素都是1和2:

1 1 1 2 2 1 1 2
1 1 1 1 1 1 2 2
2 2 1 1 2 1 1 2
1 1 2 1 1 1 2 2

但你预期得到的是包含0和1的矩阵:

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

核心原因

你误解了APL中?(随机数生成器)的行为:

  • ?N 生成的是1到N之间的随机整数,所以?2的结果只能是1或2,不可能出现0。
  • 你的表达式?(1 2 × 4) ⍴2等价于?4 8⍴2,本质是生成一个4行8列的矩阵,每个元素都是?2的结果(即1或2),这和实际输出完全一致。

修正方案

如果要生成包含0和1的随机矩阵,有两种常用写法:

  1. 利用?N-1生成0到N-1的随机数:
(1 2 × 4) ⍴ ?2 - 1
  1. 生成0到1的随机浮点数后向下取整:
⌊ ? (1 2 × 4) ⍴ 1

内容的提问来源于stack exchange,提问作者Connor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 08:01:41