Do I have a twin with permutated remainders?
$begingroup$
We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.
Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_{n+k}$ is a permutation of $R_n$.
Examples
The criterion is met for $n=8$, because:
- we have $R_8=(0,2,3,1)$
- for $k=44$, we have $R_{n+k}=R_{52}=(0,1,2,3)$, which is a permutation of $R_8$
The criterion is not met for $n=48$, because:
- we have $R_{48}=(0,0,3,6)$
- the smallest integer $k>0$ such that $R_{n+k}$ is a permutation of $R_{48}$ is $k=210$ (leading to $R_{258}=(0,0,3,6)$ as well)
Rules
- You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.
- This is code-golf.
Hint
Do you really need to compute $k$? Well, maybe. Or maybe not.
Test cases
Some values of $n$ for which $k$ exists:
3, 4, 5, 8, 30, 100, 200, 2019
Some values of $n$ for which $k$ does not exist:
0, 1, 2, 13, 19, 48, 210, 1999
code-golf decision-problem number-theory
$endgroup$
add a comment |
$begingroup$
We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.
Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_{n+k}$ is a permutation of $R_n$.
Examples
The criterion is met for $n=8$, because:
- we have $R_8=(0,2,3,1)$
- for $k=44$, we have $R_{n+k}=R_{52}=(0,1,2,3)$, which is a permutation of $R_8$
The criterion is not met for $n=48$, because:
- we have $R_{48}=(0,0,3,6)$
- the smallest integer $k>0$ such that $R_{n+k}$ is a permutation of $R_{48}$ is $k=210$ (leading to $R_{258}=(0,0,3,6)$ as well)
Rules
- You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.
- This is code-golf.
Hint
Do you really need to compute $k$? Well, maybe. Or maybe not.
Test cases
Some values of $n$ for which $k$ exists:
3, 4, 5, 8, 30, 100, 200, 2019
Some values of $n$ for which $k$ does not exist:
0, 1, 2, 13, 19, 48, 210, 1999
code-golf decision-problem number-theory
$endgroup$
$begingroup$
Why can't2
happen?k=2 = {0,2}; k=2+28={0,2}
. Same for1999 + 42
$endgroup$
– Ven
8 hours ago
$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
8 hours ago
add a comment |
$begingroup$
We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.
Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_{n+k}$ is a permutation of $R_n$.
Examples
The criterion is met for $n=8$, because:
- we have $R_8=(0,2,3,1)$
- for $k=44$, we have $R_{n+k}=R_{52}=(0,1,2,3)$, which is a permutation of $R_8$
The criterion is not met for $n=48$, because:
- we have $R_{48}=(0,0,3,6)$
- the smallest integer $k>0$ such that $R_{n+k}$ is a permutation of $R_{48}$ is $k=210$ (leading to $R_{258}=(0,0,3,6)$ as well)
Rules
- You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.
- This is code-golf.
Hint
Do you really need to compute $k$? Well, maybe. Or maybe not.
Test cases
Some values of $n$ for which $k$ exists:
3, 4, 5, 8, 30, 100, 200, 2019
Some values of $n$ for which $k$ does not exist:
0, 1, 2, 13, 19, 48, 210, 1999
code-golf decision-problem number-theory
$endgroup$
We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.
Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_{n+k}$ is a permutation of $R_n$.
Examples
The criterion is met for $n=8$, because:
- we have $R_8=(0,2,3,1)$
- for $k=44$, we have $R_{n+k}=R_{52}=(0,1,2,3)$, which is a permutation of $R_8$
The criterion is not met for $n=48$, because:
- we have $R_{48}=(0,0,3,6)$
- the smallest integer $k>0$ such that $R_{n+k}$ is a permutation of $R_{48}$ is $k=210$ (leading to $R_{258}=(0,0,3,6)$ as well)
Rules
- You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.
- This is code-golf.
Hint
Do you really need to compute $k$? Well, maybe. Or maybe not.
Test cases
Some values of $n$ for which $k$ exists:
3, 4, 5, 8, 30, 100, 200, 2019
Some values of $n$ for which $k$ does not exist:
0, 1, 2, 13, 19, 48, 210, 1999
code-golf decision-problem number-theory
code-golf decision-problem number-theory
asked 9 hours ago
ArnauldArnauld
80.3k797332
80.3k797332
$begingroup$
Why can't2
happen?k=2 = {0,2}; k=2+28={0,2}
. Same for1999 + 42
$endgroup$
– Ven
8 hours ago
$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
8 hours ago
add a comment |
$begingroup$
Why can't2
happen?k=2 = {0,2}; k=2+28={0,2}
. Same for1999 + 42
$endgroup$
– Ven
8 hours ago
$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
8 hours ago
$begingroup$
Why can't
2
happen? k=2 = {0,2}; k=2+28={0,2}
. Same for 1999 + 42
$endgroup$
– Ven
8 hours ago
$begingroup$
Why can't
2
happen? k=2 = {0,2}; k=2+28={0,2}
. Same for 1999 + 42
$endgroup$
– Ven
8 hours ago
$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
8 hours ago
$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
8 hours ago
add a comment |
11 Answers
11
active
oldest
votes
$begingroup$
R, 63 59 bytes
s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])
Try it online!
-4 bytes thanks to Giuseppe
(The explanation contains a spoiler as to how to solve the problem without computing $k$.)
Explanation:
Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:
- s[2]<2 and s[2]!=s[1]
- s[3]<3 and s[3]!=s[2]
- s[4]<5 and s[4]!=s[3]
The code can probably be golfed further.
New contributor
$endgroup$
add a comment |
$begingroup$
Haskell, 69 bytes
Based on the Chinese remainder theorem
m=[2,3,5,7]
f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]
Try it online!
$endgroup$
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 125 bytes
n=>Enumerable.Range(n+1,209).Any(c=>new{c%2,c%3,c%5,c%7}.OrderBy(x=>x).SequenceEqual(new{n%2,n%3,n%5,n%7}.OrderBy(x=>x)))
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 67 bytes
!FreeQ[Sort/@Table[R[#+k],{k,209}],Sort@R@#]&
R@n_:=n~Mod~{2,3,5,7}
Try it online!
$endgroup$
add a comment |
$begingroup$
Perl 6, 64 61 59 bytes
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
Try it online!
Fixed my bug by changing set
to bag
:).
Explanation:
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
my&f={bag($_ X%2,3,5,7)}; # helper function: f
{ $_ }; # takes the implicit argument $_
X%2,3,5,7 # cross metaoperator with divide: does cross product division
bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
.map(&f) # Apply the helper function for each value in that range
any( ) # Is any of these bags
=== # Equal to
f $_ # The helper function result for the given argument?
Alternative version:
{my @a=($_+ ^209).map:{bag($_ X%2,3,5,7)};@a.shift===any @a}
$endgroup$
add a comment |
$begingroup$
Ruby, 54 bytes
->n{[2,3,5,7].each_cons(2).any?{|l,h|n%l!=n%h&&n%h<l}}
Try it online!
Uses Robin Ryder's clever solution.
$endgroup$
add a comment |
$begingroup$
R, 72 bytes
n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 15 bytes
8ÆR©PḶ+%Ṣ¥€®ċḢ$
Try it online!
I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.
$endgroup$
1
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (?
is the if-else construct in Jelly; for some languages it's a harder question).
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost withḢe$
if you wanted :)
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
add a comment |
$begingroup$
PHP, 81 78 72 bytes
while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);
A riff on @Robin Ryder's answer. Input is via STDIN
, output is 'T'
if truthy, and empty ''
if falsy.
$ echo 3|php -nF euc.php
T
$ echo 5|php -nF euc.php
T
$ echo 2019|php -nF euc.php
T
$ echo 0|php -nF euc.php
$ echo 2|php -nF euc.php
$ echo 1999|php -nF euc.php
Try it online!
Or 73 bytes with 1
or 0
response
while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
$ echo 2019|php -nF euc.php
1
$ echo 1999|php -nF euc.php
0
Try it online (all test cases)!
Original answer, 133 127 bytes
function($n){while(++$k<210)if(($r=function($n){foreach([2,3,5,7]as$d)$o=$n%$d;sort($o);return$o;})($n+$k)==$r($n))return 1;}
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 41 bytes
lambda n:n%5!=n%7<5or n%3!=n%5<3or-~n%6/4
Try it online!
Uses the same characterization as Robin Ryder. The check n%2!=n%3<2
is shortened to -~n%6/4
. Writing the the three conditions turned out shorter than writing a general one:
46 bytes
lambda n:any(n%p!=n%(p+1|1)<p for p in[2,3,5])
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 3, 69 bytes
lambda x:int('4LR2991ODO5GS2974QWH22YTLL3E3I6TDADQG87I0',36)&1<<x%210
Try it online!
Hardcoded
$endgroup$
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.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "200"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
},
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%2fcodegolf.stackexchange.com%2fquestions%2f182669%2fdo-i-have-a-twin-with-permutated-remainders%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
11 Answers
11
active
oldest
votes
11 Answers
11
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
R, 63 59 bytes
s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])
Try it online!
-4 bytes thanks to Giuseppe
(The explanation contains a spoiler as to how to solve the problem without computing $k$.)
Explanation:
Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:
- s[2]<2 and s[2]!=s[1]
- s[3]<3 and s[3]!=s[2]
- s[4]<5 and s[4]!=s[3]
The code can probably be golfed further.
New contributor
$endgroup$
add a comment |
$begingroup$
R, 63 59 bytes
s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])
Try it online!
-4 bytes thanks to Giuseppe
(The explanation contains a spoiler as to how to solve the problem without computing $k$.)
Explanation:
Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:
- s[2]<2 and s[2]!=s[1]
- s[3]<3 and s[3]!=s[2]
- s[4]<5 and s[4]!=s[3]
The code can probably be golfed further.
New contributor
$endgroup$
add a comment |
$begingroup$
R, 63 59 bytes
s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])
Try it online!
-4 bytes thanks to Giuseppe
(The explanation contains a spoiler as to how to solve the problem without computing $k$.)
Explanation:
Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:
- s[2]<2 and s[2]!=s[1]
- s[3]<3 and s[3]!=s[2]
- s[4]<5 and s[4]!=s[3]
The code can probably be golfed further.
New contributor
$endgroup$
R, 63 59 bytes
s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])
Try it online!
-4 bytes thanks to Giuseppe
(The explanation contains a spoiler as to how to solve the problem without computing $k$.)
Explanation:
Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:
- s[2]<2 and s[2]!=s[1]
- s[3]<3 and s[3]!=s[2]
- s[4]<5 and s[4]!=s[3]
The code can probably be golfed further.
New contributor
edited 6 hours ago
New contributor
answered 7 hours ago
Robin RyderRobin Ryder
4116
4116
New contributor
New contributor
add a comment |
add a comment |
$begingroup$
Haskell, 69 bytes
Based on the Chinese remainder theorem
m=[2,3,5,7]
f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]
Try it online!
$endgroup$
add a comment |
$begingroup$
Haskell, 69 bytes
Based on the Chinese remainder theorem
m=[2,3,5,7]
f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]
Try it online!
$endgroup$
add a comment |
$begingroup$
Haskell, 69 bytes
Based on the Chinese remainder theorem
m=[2,3,5,7]
f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]
Try it online!
$endgroup$
Haskell, 69 bytes
Based on the Chinese remainder theorem
m=[2,3,5,7]
f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]
Try it online!
answered 7 hours ago
H.PWizH.PWiz
10.3k21351
10.3k21351
add a comment |
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 125 bytes
n=>Enumerable.Range(n+1,209).Any(c=>new{c%2,c%3,c%5,c%7}.OrderBy(x=>x).SequenceEqual(new{n%2,n%3,n%5,n%7}.OrderBy(x=>x)))
Try it online!
$endgroup$
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 125 bytes
n=>Enumerable.Range(n+1,209).Any(c=>new{c%2,c%3,c%5,c%7}.OrderBy(x=>x).SequenceEqual(new{n%2,n%3,n%5,n%7}.OrderBy(x=>x)))
Try it online!
$endgroup$
add a comment |
$begingroup$
C# (Visual C# Interactive Compiler), 125 bytes
n=>Enumerable.Range(n+1,209).Any(c=>new{c%2,c%3,c%5,c%7}.OrderBy(x=>x).SequenceEqual(new{n%2,n%3,n%5,n%7}.OrderBy(x=>x)))
Try it online!
$endgroup$
C# (Visual C# Interactive Compiler), 125 bytes
n=>Enumerable.Range(n+1,209).Any(c=>new{c%2,c%3,c%5,c%7}.OrderBy(x=>x).SequenceEqual(new{n%2,n%3,n%5,n%7}.OrderBy(x=>x)))
Try it online!
answered 8 hours ago
Embodiment of IgnoranceEmbodiment of Ignorance
2,718126
2,718126
add a comment |
add a comment |
$begingroup$
Wolfram Language (Mathematica), 67 bytes
!FreeQ[Sort/@Table[R[#+k],{k,209}],Sort@R@#]&
R@n_:=n~Mod~{2,3,5,7}
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 67 bytes
!FreeQ[Sort/@Table[R[#+k],{k,209}],Sort@R@#]&
R@n_:=n~Mod~{2,3,5,7}
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 67 bytes
!FreeQ[Sort/@Table[R[#+k],{k,209}],Sort@R@#]&
R@n_:=n~Mod~{2,3,5,7}
Try it online!
$endgroup$
Wolfram Language (Mathematica), 67 bytes
!FreeQ[Sort/@Table[R[#+k],{k,209}],Sort@R@#]&
R@n_:=n~Mod~{2,3,5,7}
Try it online!
edited 8 hours ago
answered 8 hours ago
J42161217J42161217
13.8k21253
13.8k21253
add a comment |
add a comment |
$begingroup$
Perl 6, 64 61 59 bytes
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
Try it online!
Fixed my bug by changing set
to bag
:).
Explanation:
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
my&f={bag($_ X%2,3,5,7)}; # helper function: f
{ $_ }; # takes the implicit argument $_
X%2,3,5,7 # cross metaoperator with divide: does cross product division
bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
.map(&f) # Apply the helper function for each value in that range
any( ) # Is any of these bags
=== # Equal to
f $_ # The helper function result for the given argument?
Alternative version:
{my @a=($_+ ^209).map:{bag($_ X%2,3,5,7)};@a.shift===any @a}
$endgroup$
add a comment |
$begingroup$
Perl 6, 64 61 59 bytes
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
Try it online!
Fixed my bug by changing set
to bag
:).
Explanation:
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
my&f={bag($_ X%2,3,5,7)}; # helper function: f
{ $_ }; # takes the implicit argument $_
X%2,3,5,7 # cross metaoperator with divide: does cross product division
bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
.map(&f) # Apply the helper function for each value in that range
any( ) # Is any of these bags
=== # Equal to
f $_ # The helper function result for the given argument?
Alternative version:
{my @a=($_+ ^209).map:{bag($_ X%2,3,5,7)};@a.shift===any @a}
$endgroup$
add a comment |
$begingroup$
Perl 6, 64 61 59 bytes
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
Try it online!
Fixed my bug by changing set
to bag
:).
Explanation:
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
my&f={bag($_ X%2,3,5,7)}; # helper function: f
{ $_ }; # takes the implicit argument $_
X%2,3,5,7 # cross metaoperator with divide: does cross product division
bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
.map(&f) # Apply the helper function for each value in that range
any( ) # Is any of these bags
=== # Equal to
f $_ # The helper function result for the given argument?
Alternative version:
{my @a=($_+ ^209).map:{bag($_ X%2,3,5,7)};@a.shift===any @a}
$endgroup$
Perl 6, 64 61 59 bytes
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
Try it online!
Fixed my bug by changing set
to bag
:).
Explanation:
{my&f={bag($_ X%2,3,5,7)};any(($_+1+ ^209).map(&f))===f $_}
my&f={bag($_ X%2,3,5,7)}; # helper function: f
{ $_ }; # takes the implicit argument $_
X%2,3,5,7 # cross metaoperator with divide: does cross product division
bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
.map(&f) # Apply the helper function for each value in that range
any( ) # Is any of these bags
=== # Equal to
f $_ # The helper function result for the given argument?
Alternative version:
{my @a=($_+ ^209).map:{bag($_ X%2,3,5,7)};@a.shift===any @a}
edited 8 hours ago
answered 8 hours ago
VenVen
2,50511223
2,50511223
add a comment |
add a comment |
$begingroup$
Ruby, 54 bytes
->n{[2,3,5,7].each_cons(2).any?{|l,h|n%l!=n%h&&n%h<l}}
Try it online!
Uses Robin Ryder's clever solution.
$endgroup$
add a comment |
$begingroup$
Ruby, 54 bytes
->n{[2,3,5,7].each_cons(2).any?{|l,h|n%l!=n%h&&n%h<l}}
Try it online!
Uses Robin Ryder's clever solution.
$endgroup$
add a comment |
$begingroup$
Ruby, 54 bytes
->n{[2,3,5,7].each_cons(2).any?{|l,h|n%l!=n%h&&n%h<l}}
Try it online!
Uses Robin Ryder's clever solution.
$endgroup$
Ruby, 54 bytes
->n{[2,3,5,7].each_cons(2).any?{|l,h|n%l!=n%h&&n%h<l}}
Try it online!
Uses Robin Ryder's clever solution.
answered 5 hours ago
histocrathistocrat
19.2k43173
19.2k43173
add a comment |
add a comment |
$begingroup$
R, 72 bytes
n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F
Try it online!
$endgroup$
add a comment |
$begingroup$
R, 72 bytes
n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F
Try it online!
$endgroup$
add a comment |
$begingroup$
R, 72 bytes
n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F
Try it online!
$endgroup$
R, 72 bytes
n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F
Try it online!
answered 7 hours ago
Aaron HaymanAaron Hayman
3516
3516
add a comment |
add a comment |
$begingroup$
Jelly, 15 bytes
8ÆR©PḶ+%Ṣ¥€®ċḢ$
Try it online!
I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.
$endgroup$
1
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (?
is the if-else construct in Jelly; for some languages it's a harder question).
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost withḢe$
if you wanted :)
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
add a comment |
$begingroup$
Jelly, 15 bytes
8ÆR©PḶ+%Ṣ¥€®ċḢ$
Try it online!
I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.
$endgroup$
1
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (?
is the if-else construct in Jelly; for some languages it's a harder question).
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost withḢe$
if you wanted :)
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
add a comment |
$begingroup$
Jelly, 15 bytes
8ÆR©PḶ+%Ṣ¥€®ċḢ$
Try it online!
I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.
$endgroup$
Jelly, 15 bytes
8ÆR©PḶ+%Ṣ¥€®ċḢ$
Try it online!
I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.
answered 6 hours ago
Nick KennedyNick Kennedy
1,31649
1,31649
1
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (?
is the if-else construct in Jelly; for some languages it's a harder question).
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost withḢe$
if you wanted :)
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
add a comment |
1
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (?
is the if-else construct in Jelly; for some languages it's a harder question).
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost withḢe$
if you wanted :)
$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
1
1
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (
?
is the if-else construct in Jelly; for some languages it's a harder question).$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (
?
is the if-else construct in Jelly; for some languages it's a harder question).$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost with
Ḣe$
if you wanted :)$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
Oh, and you could get distinct values for no cost with
Ḣe$
if you wanted :)$endgroup$
– Jonathan Allan
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
$begingroup$
@JonathanAllan yes of course, thanks. :)
$endgroup$
– Nick Kennedy
6 hours ago
add a comment |
$begingroup$
PHP, 81 78 72 bytes
while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);
A riff on @Robin Ryder's answer. Input is via STDIN
, output is 'T'
if truthy, and empty ''
if falsy.
$ echo 3|php -nF euc.php
T
$ echo 5|php -nF euc.php
T
$ echo 2019|php -nF euc.php
T
$ echo 0|php -nF euc.php
$ echo 2|php -nF euc.php
$ echo 1999|php -nF euc.php
Try it online!
Or 73 bytes with 1
or 0
response
while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
$ echo 2019|php -nF euc.php
1
$ echo 1999|php -nF euc.php
0
Try it online (all test cases)!
Original answer, 133 127 bytes
function($n){while(++$k<210)if(($r=function($n){foreach([2,3,5,7]as$d)$o=$n%$d;sort($o);return$o;})($n+$k)==$r($n))return 1;}
Try it online!
$endgroup$
add a comment |
$begingroup$
PHP, 81 78 72 bytes
while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);
A riff on @Robin Ryder's answer. Input is via STDIN
, output is 'T'
if truthy, and empty ''
if falsy.
$ echo 3|php -nF euc.php
T
$ echo 5|php -nF euc.php
T
$ echo 2019|php -nF euc.php
T
$ echo 0|php -nF euc.php
$ echo 2|php -nF euc.php
$ echo 1999|php -nF euc.php
Try it online!
Or 73 bytes with 1
or 0
response
while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
$ echo 2019|php -nF euc.php
1
$ echo 1999|php -nF euc.php
0
Try it online (all test cases)!
Original answer, 133 127 bytes
function($n){while(++$k<210)if(($r=function($n){foreach([2,3,5,7]as$d)$o=$n%$d;sort($o);return$o;})($n+$k)==$r($n))return 1;}
Try it online!
$endgroup$
add a comment |
$begingroup$
PHP, 81 78 72 bytes
while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);
A riff on @Robin Ryder's answer. Input is via STDIN
, output is 'T'
if truthy, and empty ''
if falsy.
$ echo 3|php -nF euc.php
T
$ echo 5|php -nF euc.php
T
$ echo 2019|php -nF euc.php
T
$ echo 0|php -nF euc.php
$ echo 2|php -nF euc.php
$ echo 1999|php -nF euc.php
Try it online!
Or 73 bytes with 1
or 0
response
while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
$ echo 2019|php -nF euc.php
1
$ echo 1999|php -nF euc.php
0
Try it online (all test cases)!
Original answer, 133 127 bytes
function($n){while(++$k<210)if(($r=function($n){foreach([2,3,5,7]as$d)$o=$n%$d;sort($o);return$o;})($n+$k)==$r($n))return 1;}
Try it online!
$endgroup$
PHP, 81 78 72 bytes
while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);
A riff on @Robin Ryder's answer. Input is via STDIN
, output is 'T'
if truthy, and empty ''
if falsy.
$ echo 3|php -nF euc.php
T
$ echo 5|php -nF euc.php
T
$ echo 2019|php -nF euc.php
T
$ echo 0|php -nF euc.php
$ echo 2|php -nF euc.php
$ echo 1999|php -nF euc.php
Try it online!
Or 73 bytes with 1
or 0
response
while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;
$ echo 2019|php -nF euc.php
1
$ echo 1999|php -nF euc.php
0
Try it online (all test cases)!
Original answer, 133 127 bytes
function($n){while(++$k<210)if(($r=function($n){foreach([2,3,5,7]as$d)$o=$n%$d;sort($o);return$o;})($n+$k)==$r($n))return 1;}
Try it online!
edited 5 hours ago
answered 8 hours ago
gwaughgwaugh
1,998517
1,998517
add a comment |
add a comment |
$begingroup$
Python 2, 41 bytes
lambda n:n%5!=n%7<5or n%3!=n%5<3or-~n%6/4
Try it online!
Uses the same characterization as Robin Ryder. The check n%2!=n%3<2
is shortened to -~n%6/4
. Writing the the three conditions turned out shorter than writing a general one:
46 bytes
lambda n:any(n%p!=n%(p+1|1)<p for p in[2,3,5])
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 41 bytes
lambda n:n%5!=n%7<5or n%3!=n%5<3or-~n%6/4
Try it online!
Uses the same characterization as Robin Ryder. The check n%2!=n%3<2
is shortened to -~n%6/4
. Writing the the three conditions turned out shorter than writing a general one:
46 bytes
lambda n:any(n%p!=n%(p+1|1)<p for p in[2,3,5])
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 41 bytes
lambda n:n%5!=n%7<5or n%3!=n%5<3or-~n%6/4
Try it online!
Uses the same characterization as Robin Ryder. The check n%2!=n%3<2
is shortened to -~n%6/4
. Writing the the three conditions turned out shorter than writing a general one:
46 bytes
lambda n:any(n%p!=n%(p+1|1)<p for p in[2,3,5])
Try it online!
$endgroup$
Python 2, 41 bytes
lambda n:n%5!=n%7<5or n%3!=n%5<3or-~n%6/4
Try it online!
Uses the same characterization as Robin Ryder. The check n%2!=n%3<2
is shortened to -~n%6/4
. Writing the the three conditions turned out shorter than writing a general one:
46 bytes
lambda n:any(n%p!=n%(p+1|1)<p for p in[2,3,5])
Try it online!
edited 1 min ago
answered 8 mins ago
xnorxnor
93.2k18190448
93.2k18190448
add a comment |
add a comment |
$begingroup$
Python 3, 69 bytes
lambda x:int('4LR2991ODO5GS2974QWH22YTLL3E3I6TDADQG87I0',36)&1<<x%210
Try it online!
Hardcoded
$endgroup$
add a comment |
$begingroup$
Python 3, 69 bytes
lambda x:int('4LR2991ODO5GS2974QWH22YTLL3E3I6TDADQG87I0',36)&1<<x%210
Try it online!
Hardcoded
$endgroup$
add a comment |
$begingroup$
Python 3, 69 bytes
lambda x:int('4LR2991ODO5GS2974QWH22YTLL3E3I6TDADQG87I0',36)&1<<x%210
Try it online!
Hardcoded
$endgroup$
Python 3, 69 bytes
lambda x:int('4LR2991ODO5GS2974QWH22YTLL3E3I6TDADQG87I0',36)&1<<x%210
Try it online!
Hardcoded
answered 2 hours ago
attinatattinat
4597
4597
add a comment |
add a comment |
If this is an answer to a challenge…
…Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.
…Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
Explanations of your answer make it more interesting to read and are very much encouraged.…Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.
More generally…
…Please make sure to answer the question and provide sufficient detail.
…Avoid asking for help, clarification or responding to other answers (use comments instead).
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%2fcodegolf.stackexchange.com%2fquestions%2f182669%2fdo-i-have-a-twin-with-permutated-remainders%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
$begingroup$
Why can't
2
happen?k=2 = {0,2}; k=2+28={0,2}
. Same for1999 + 42
$endgroup$
– Ven
8 hours ago
$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
8 hours ago