Как реализовать код, который выводит суммарную мощность до очень большого числа. т.е. сумма x ^ N, для x 1 до K - PullRequest
0 голосов
/ 13 июня 2019

Я хочу написать функцию, которая возвращает сумму x ^ N, для x 1 до K

где K порядка 10 ^ 9 и N порядка 10 ^ 5

Очевидно, что я хочу конечное значение по модулю 10 ^ 9 + 7

Мы не можем просто зацикливаться на K, так как он истечет. Я думаю, что это может быть преобразовано в какой-то цикл над N. Я читал статью об этом, но не смог придумать код.

int fun(int n , int K){
  int sum = 0;
  int mod = 1e9+7;
  for(int i = 1; i <= K; i++){
    sum += power(i,n);
    sum %= mod;
  }

  return sum;
}

Например:
вход: 2 3
выход: 14
(1 ^ 2 + 2 ^ 2 + 3 ^ 2)

Я наткнулся на Формула Фолхабера , но она состоит из чисел Бернаули, и я не знаю, как ее вычислить.

...