Any good way to calculate $frac {alpha ^ n - 1 } {alpha - 1} pmod{c}$
$begingroup$
I tried by multiplying modular inverse of denominator to the numerator and then taking modulo $c$, but there are problems when the inverse does not exist.
So is there a good way to solve this problem.
Constraints
$$ 1 le alpha le 1e9 $$
$c$ is a prime
$$ 1 le n le 1e9 $$
number-theory
$endgroup$
add a comment |
$begingroup$
I tried by multiplying modular inverse of denominator to the numerator and then taking modulo $c$, but there are problems when the inverse does not exist.
So is there a good way to solve this problem.
Constraints
$$ 1 le alpha le 1e9 $$
$c$ is a prime
$$ 1 le n le 1e9 $$
number-theory
$endgroup$
1
$begingroup$
If $c$ divides $alpha-1$ with multiplicity $k$, you can compute $alpha^n-1pmod{p^{k+1}}$ and then divide by $alpha-1$.
$endgroup$
– Wojowu
Jan 3 at 17:04
add a comment |
$begingroup$
I tried by multiplying modular inverse of denominator to the numerator and then taking modulo $c$, but there are problems when the inverse does not exist.
So is there a good way to solve this problem.
Constraints
$$ 1 le alpha le 1e9 $$
$c$ is a prime
$$ 1 le n le 1e9 $$
number-theory
$endgroup$
I tried by multiplying modular inverse of denominator to the numerator and then taking modulo $c$, but there are problems when the inverse does not exist.
So is there a good way to solve this problem.
Constraints
$$ 1 le alpha le 1e9 $$
$c$ is a prime
$$ 1 le n le 1e9 $$
number-theory
number-theory
edited Jan 4 at 21:45
rtybase
11.2k21533
11.2k21533
asked Jan 3 at 16:59
satvik choudharysatvik choudhary
215
215
1
$begingroup$
If $c$ divides $alpha-1$ with multiplicity $k$, you can compute $alpha^n-1pmod{p^{k+1}}$ and then divide by $alpha-1$.
$endgroup$
– Wojowu
Jan 3 at 17:04
add a comment |
1
$begingroup$
If $c$ divides $alpha-1$ with multiplicity $k$, you can compute $alpha^n-1pmod{p^{k+1}}$ and then divide by $alpha-1$.
$endgroup$
– Wojowu
Jan 3 at 17:04
1
1
$begingroup$
If $c$ divides $alpha-1$ with multiplicity $k$, you can compute $alpha^n-1pmod{p^{k+1}}$ and then divide by $alpha-1$.
$endgroup$
– Wojowu
Jan 3 at 17:04
$begingroup$
If $c$ divides $alpha-1$ with multiplicity $k$, you can compute $alpha^n-1pmod{p^{k+1}}$ and then divide by $alpha-1$.
$endgroup$
– Wojowu
Jan 3 at 17:04
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Set $S_0:=1$ and then recursively $S_k:=alpha S_{k-1}+1 pmod c$ for all $k=1,dotsc,n-1$. The last value $S_{n-1}$ is what you seek.
$endgroup$
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3060775%2fany-good-way-to-calculate-frac-alpha-n-1-alpha-1-pmodc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Set $S_0:=1$ and then recursively $S_k:=alpha S_{k-1}+1 pmod c$ for all $k=1,dotsc,n-1$. The last value $S_{n-1}$ is what you seek.
$endgroup$
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
add a comment |
$begingroup$
Set $S_0:=1$ and then recursively $S_k:=alpha S_{k-1}+1 pmod c$ for all $k=1,dotsc,n-1$. The last value $S_{n-1}$ is what you seek.
$endgroup$
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
add a comment |
$begingroup$
Set $S_0:=1$ and then recursively $S_k:=alpha S_{k-1}+1 pmod c$ for all $k=1,dotsc,n-1$. The last value $S_{n-1}$ is what you seek.
$endgroup$
Set $S_0:=1$ and then recursively $S_k:=alpha S_{k-1}+1 pmod c$ for all $k=1,dotsc,n-1$. The last value $S_{n-1}$ is what you seek.
answered Jan 3 at 18:21
W-t-PW-t-P
1,302611
1,302611
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
add a comment |
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
Its too slow to be just linearly calculated with n ~ 1e9
$endgroup$
– satvik choudhary
Jan 4 at 10:19
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
A better way would be to go like $ S_k := S_{frac {k}{2}} + alpha ^ {k / 2} S_{k - frac{k}{2}} $
$endgroup$
– satvik choudhary
Jan 4 at 10:29
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
$begingroup$
Sure, as long as running time is an issue. (From your question I understood that you are mostly struggling with the situation where the denominator is not invertible.)
$endgroup$
– W-t-P
Jan 5 at 9:01
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3060775%2fany-good-way-to-calculate-frac-alpha-n-1-alpha-1-pmodc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
$begingroup$
If $c$ divides $alpha-1$ with multiplicity $k$, you can compute $alpha^n-1pmod{p^{k+1}}$ and then divide by $alpha-1$.
$endgroup$
– Wojowu
Jan 3 at 17:04