KDB:生成随机字符串

KDB: generate random string

如何在 KDB 中生成给定长度的随机字符串?字符串必须由大小写字母和数字组成,首字符不能为数字。

示例:

"i0J2Jx3qa" / OK
"30J2Jx3qa" / bad

非常感谢您的帮助!

stringLength: 13
randomString: (1 ? .Q.A,.Q.a) , ((stringLength-1) ? .Q.nA,.Q.a)

为了创建随机数据,您还可以使用 ?/deal 和最多 8 个字符作为符号(您可以将其串起来)。这不包括数字,所以只是您自己回答的另一种方法。

1?`8
,`bghgobnj

如果您不喜欢重复:

raze(1,stringLength-1)?'10 0_\:.Q.nA,.Q.a

上面已经有一个很好的答案被采纳了。只是想在某个地方注意,如果这是为了生成真正随机的数据,您需要考虑随机化您的种子。这可以在 Linux 中通过在 bash 中使用 $RANDOM 或从 /dev/random 中读取最多四个字节来完成(相对较新版本的 kdb 可以直接从 FIFO 读取)。

否则种子设置为 pi 的数字:314159