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

如何在Haskell中遍历两个列表并逐元素判断整除关系?

问题解决:根据位置序号的整除性生成布尔列表

需求明确

给定列表A,生成布尔列表C,其中C的每个元素对应A中同位置的元素是否能被从1开始的位置序号整除(即A的第n个元素对应除数为n,对应无限列表B的第n个元素)。

示例验证

以A = [3,5,6,8,9]为例:

  • 第1个元素3 ÷ 1 → 整除 → True
  • 第2个元素5 ÷ 2 → 余1 → False
  • 第3个元素6 ÷ 3 → 整除 → True
  • 第4个元素8 ÷ 4 → 整除 → True
  • 第5个元素9 ÷ 5 → 余4 → False
    最终C = [True, False, True, True, False]

代码实现

Python 写法

基础循环版
A = [3,5,6,8,9]
C = []
# enumerate(start=1) 直接获取从1开始的位置序号
for position, num in enumerate(A, start=1):
    C.append(num % position == 0)
print(C)  # 输出: [True, False, True, True, False]
列表推导式(简洁版)
A = [3,5,6,8,9]
C = [num % position == 0 for position, num in enumerate(A, start=1)]
print(C)

JavaScript 写法

const A = [3,5,6,8,9];
// 数组索引从0开始,因此位置序号为 idx + 1
const C = A.map((num, idx) => num % (idx + 1) === 0);
console.log(C); // 输出: [true, false, true, true, false]

关键逻辑说明

  • 核心是将A中每个元素的**位置序号(从1开始)**作为除数,对应无限列表B的元素值
  • 利用取模运算num % position判断整除性:结果为0则返回True,否则返回False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:45:30