查找满足两个mod条件的未知变量“x”

时间:2018-02-05 21:06:22

标签: r chinese-remainder-theorem

我想知道如何找到满足两个mod条件的最小整数“x”。

    x%%7 == 1
    x%%10 == 2

我试图在函数中使用for / while循环,就像没有运气一样:

  min.integer <- function(x) {
    y = c(1:500000)
    for (i in y) {
      if (x%%10 == 2) {
        print(x)
      } else {
        break
      }     
    }
  }

这是解决此问题的最佳方法吗?谢谢!

2 个答案:

答案 0 :(得分:0)

一个简单的while循环

socket.send(message.decode('string_escape'))

答案 1 :(得分:0)

这可能会有所帮助:

twoModsSatisfied <- function(
    mod1
    , equals1
    , mod2
    , equals2
    , howMany # how many different values do you want to try
){
    x <- (0:howMany) * mod1 # all these values will satify the 1st condition
    x[which((x + equals1) %% mod2 == equals2)][1] + equals1
}

twoModsSatisfied(
    7
    , 1
    , 10
    , 2
    , 100
)

[1]确保您只获得满足条件的第一个值。 0:howMany确保您获得twoModsSatisfied(7,2,10,2,100)的正确结果。该函数不会检查请求是否不可能(例如twoModsSatisfied(7,8,10,2,100)),但使用if语句也可以轻松完成。