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

如何在kdb中对数字递归执行取模与地板除法操作?

KDB实现递归取模与地板除法(62进制余数计算)

要实现对数字循环执行取模62并收集余数,再做62的地板除法直到x≤0,核心是正确累加余数列表——如果直接赋值而非追加元素,就会只保留最后一次计算的结果。

正确的KDB实现

循环方式

toBase62Remainders:{[x]
    res:();
    while[x>0;
        res,:x mod 62;  / 使用`,:`运算符追加余数到列表
        x:x div 62;     / 地板除法更新x的值
    ];
    res
}

// 测试示例
toBase62Remainders[11157]  / 输出:59 55 2

递归方式

如果偏好递归实现,逻辑是当x≤0时返回空列表,否则将当前余数与递归处理地板除后的值拼接:

toBase62RemaindersRecur:{[x]
    $[x<=0; (); (x mod 62), toBase62RemaindersRecur[x div 62]]
}

// 测试示例
toBase62RemaindersRecur[11157]  / 输出:59 55 2

Python参考实现

def to_base62_remainders(x):
    res = []
    while x > 0:
        res.append(x % 62)
        x = x // 62
    return res

print(to_base62_remainders(11157))  # 输出: [59, 55, 2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:42:34