Java 有限整型元素域中的加法?

Java 有限整型元素域中的加法?,java,math,algebra,Java,Math,Algebra,我需要编写一个具有以下输入的函数(Java): int-amountFieldElements int summandOne int summandTwo amountFieldElement描述从1开始的整数数量(例如1、2、3、4或仅1)summandOne是此范围内的整数,summandTwo可以是任何非负整数 该函数必须将summandTwo添加到summandOne。如果结果大于amountFieldElement,则必须从1开始 我试图简单地使用模:(summandOne+summa

我需要编写一个具有以下输入的函数(Java):

  • int-amountFieldElements
  • int summandOne
  • int summandTwo
  • amountFieldElement
    描述从1开始的整数数量(例如1、2、3、4或仅1)
    summandOne
    是此范围内的整数,
    summandTwo
    可以是任何非负整数

    该函数必须将
    summandTwo
    添加到
    summandOne
    。如果结果大于amountFieldElement,则必须从1开始

    我试图简单地使用模:(summandOne+summandTwo)%amountFieldElements

    但这通常是错误的,例如
    (3+1)%4=0
    ,但我需要它是
    4

    示例:如果amountFieldElements=
    4

    2+2=4
    将保持为
    4

    3+2=5
    将变成
    1

    4+2=6
    将变成
    2

    或对于
    amountFieldElements=1

    1+0=1
    将保持为
    1

    1+1=2
    也将是
    1


    ->这里的任何结果都是1

    类似这样的结果会起作用:

    int result = (summandOne + summandTwo) % amountFieldElements;
    if (result == 0) result = amountFieldElements;
    
    另一种较短但较难理解的方法是:

    int result = (summandOne + summandTwo - 1) % amountFieldElements + 1;
    

    我不明白
    amountFieldElements
    的目的是什么。。。你能再解释一下吗?你的意思是像amountFieldElements+1一样的
    (summandOne+summandTwo-1)%amountFieldElements+1
    ?负数会变得更加棘手,但您没有指定应该在那里发生什么。如果总和大于amountFieldElements,则必须将其设置为较低的数字,类似于mod操作。例如,如果amountFieldElement=4:2+2=4将保持不变,因为4 3+2=5将变为1 4+2=6将变为2等,请添加具体输入和相应输出的示例。为什么4+2=6将变为2?我记得你说过amountFieldElements是从1开始的?嘿,这和我现在拥有的一模一样。我认为必须有更好/更优雅的方法来解决这个问题。但是,确认我所想的方法似乎是有效的,这也很棒!