我在Java中的数学方法似乎只是偶尔工作,但在一个重复的模式。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在Java中的数学方法似乎只是偶尔工作,但在一个重复的模式。相关的知识,希望对你有一定的参考价值。

我有这个代码,我想让它工作。在大多数情况下,数字出来的是-127,低于他们应该是什么,然而,偶尔数字出来的是正确的。数学在计算器中可以正常工作。

我看不到任何韵律或原因,因为它似乎是随机的。有人看到任何可能导致这种情况吗?

它似乎是发生在解码阶段。

每次运行时,似乎都在重现相同的结果。(也就是说,每次我运行时,"第十三 "的数字总是正确的,而其他的数字则是127,然后他们应该是) 。

希望得到任何帮助! 谢谢你!如果有更多的信息,请告诉我。

public static String encode(long seed, String str) {
    Random r = new Random(seed);
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        int rr = r.nextInt(1000);

        int num = (c + rr) % 127;
        sb.append((char) num);
    }

    return sb.toString();
}

public static String decode(long seed, String str) {
    Random r = new Random(seed);
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        int rr = r.nextInt(1000);

        int num = (c - rr) % 127; //This is the line in question
        sb.append((char) num);
    }

    return sb.toString();
}

如果需要更多信息,请告诉我!

以上是关于我在Java中的数学方法似乎只是偶尔工作,但在一个重复的模式。的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个基本链表可以在 MacOS 上工作,但在 Linux 上会出现段错误

Javascript未在在线网站上加载,但在本地加载xampp

以数学方式查找数字子字符串,无需字符串比较

Telnet Java 代码在 Windows 中工作,但在 Unix 中不工作

Java 聊天程序在本地主机上工作,但在 Heroku 上托管时不能

Recyclerview 偶尔会在 Android 中无法点击