gpt4 book ai didi

vector - 如何将数字向量转换为整数?

转载 作者:行者123 更新时间:2023-12-02 09:03:36 25 4
gpt4 key购买 nike

对于几个有趣的数学问题,我使用数字向量作为整数的表示。到目前为止,这对我来说效果很好。现在我想将向量转换回整数。我没有找到任何合适的开箱即用的东西,并想出了以下功能:

(defun vector->integer (vec)
"Returns a given vector of digits as an integer."
(loop :for digit :across vec
:with number-string = ""
:do (setf number-string
(concatenate 'string number-string (write-to-string digit)))
:finally (return (parse-integer number-string))))

它基本上可以满足我的要求,但我发现将向量转换为字符串再转换为整数有点麻烦。有没有更高效的方法?

最佳答案

为什么不使用乘法而不是连接字符串?

例如

(loop for digit across vec
with number = 0
do (setf number (+ (* 10 number) digit))
finally (return number))

或者更简单:

(reduce (lambda (a b) (+ (* 10 a) b)) vec)

关于vector - 如何将数字向量转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44096817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com