kdb/Q 如何存储迭代#和输入/输出?

问题描述 投票:0回答:1

这更多的是一个理论问题,因为我还没有编写任何代码。

我正在尝试迭代一个应该输出一些值的函数。

我需要的是以某种方式记录迭代#以及迭代函数的输入和结果。

例如,如果我迭代毕达哥拉斯函数,我希望输出以下内容:

迭代# 输入 输出
1 0, 1 1
2 1, 1 2
3 1, 2 3
4 2, 3 5
5 3, 5 8

我想知道如何在 kdb 中存储这 3 个不同的值,我知道 Python 和其他语言有很多选择,但我不知道这在这种语言中是否可行。

此外,如果输入变量是一个表,这会影响以任何方式存储的能力吗?如果有 100,000 次迭代呢?

data-structures storage kdb
1个回答
0
投票

要迭代输入,您可以使用累加器

q)0N!inputs:{last[x],sum x}\[5;0 1];
(0 1;1 1;1 2;2 3;3 5;5 8)
q)([] Iteration:1+til count inputs; Inputs:inputs; Output:sum each inputs)
Iteration Inputs Output
-----------------------
1         0 1    1
2         1 1    2
3         1 2    3
4         2 3    5
5         3 5    8
6         5 8    13
© www.soinside.com 2019 - 2024. All rights reserved.