0

是否存在任何函数或算法可以将两个数值作为输入并以我们可以生成两位数字的方式生成可变数据输出?

4

3 回答 3

1

该函数f(x, y) = (2 ^ x) * (3 ^ y)对于正整数是单射的。

于 2013-11-11T21:06:36.843 回答
0

您最初没有指定语言,所以我在 Ruby 中做了:

def combine(n1, n2)
  (n1.to_s + n2.to_s + ("%02d" % n2.to_s.length).to_s).to_i
end

combine(4321, 76)    # => 43217602

这将两个数字的字符串化版本与第二个数字的 0 填充 2 位长度连接起来。通过对结果取模 100 进行分解,以找出如何分解编码的前导数字。由于 Ruby 具有任意精度的整数运算,这将适用于输入最多 99 位的第二个值。转换为 C++ 应该非常简单,但是由于 int/long 大小限制,您可能希望将连接保留为字符串,而不是像我在最后所做的那样将其转换回整数。

于 2013-11-11T20:29:14.763 回答
-1

您的意思是将它们作为 2 个单独的变量输出吗?Python 提供了类似的东西,如下所示:如何在 Python 中返回多个值?

于 2013-11-11T19:28:42.450 回答