gpt4 book ai didi

java - 尝试将 python 代码移植到 Java 但得到不同的结果

转载 作者:行者123 更新时间:2023-11-28 22:03:18 27 4
gpt4 key购买 nike

我确定我在使用 Java 时犯了一个新手错误(这实际上是我的第一个程序)。我正在尝试将我编写的一些工作 python 代码移植到 java 中(作为学习/测试练习以了解一些差异),但我在两者之间得到不同的结果。

我的程序获取一个数据列表并基于它生成另一个列表(基本上是看一个值是否可以被求和分解)。 Python 正确给出 2,578 个结果,而 Java 只给出 12 个。我试图在 Java 中找到相同的命令并认为我找到了但似乎无法弄清楚为什么结果不同(两者之间的差异我遇到过多线程问题和同步变量,不确定 Java 是否在幕后做任何事情,所以我有一个 while 循环来继续运行直到结果稳定,但它没有帮助)。任何建议都会有所帮助。

这是有问题的代码(java 在顶部,python 和伪代码在底部被注释掉作为引用):

                        for (int c = 0; c <= max_value; c++){
String temp_result = (s - c * data.get(i) + "," + i);

if( results.contains( temp_result ) ){
String result_to_add = (s + "," + i+1);
if( results.contains( result_to_add ) ){
System.out.println("contains result already");
} else {
results.add(result_to_add);

} print len(T)

#Here's the basic pseudo code(I added a few control variables but here's a high level view):

for i = 1 to k
for z = 0 to sum:
for c = 1 to z / x_i:
if T[z - c * x_i][i - 1] is true:
set T[z][i] to true
*/

最佳答案

在 java 中,s + ","+ i+1 是一个字符串连接:"10"+ ","+ 4 + 1 将返回 10,41。

改为使用 String result_to_add = s + ","+ (i+1);

关于java - 尝试将 python 代码移植到 Java 但得到不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9413363/

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