Just Twice Is Nice
Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:
0 * s = ""
n * s = s ++ ((n - 1) * s)
Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.
This is code-golf so your answers will be scored in bytes with fewer bytes being better.
Related, Related.
code-golf source-layout
add a comment |
Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:
0 * s = ""
n * s = s ++ ((n - 1) * s)
Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.
This is code-golf so your answers will be scored in bytes with fewer bytes being better.
Related, Related.
code-golf source-layout
4
All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago
add a comment |
Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:
0 * s = ""
n * s = s ++ ((n - 1) * s)
Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.
This is code-golf so your answers will be scored in bytes with fewer bytes being better.
Related, Related.
code-golf source-layout
Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:
0 * s = ""
n * s = s ++ ((n - 1) * s)
Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.
This is code-golf so your answers will be scored in bytes with fewer bytes being better.
Related, Related.
code-golf source-layout
code-golf source-layout
asked 5 hours ago
Post Left Garf Hunter
33.9k10156365
33.9k10156365
4
All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago
add a comment |
4
All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago
4
4
All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago
All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago
add a comment |
5 Answers
5
active
oldest
votes
R, 27 25 bytes
1+!1-length(readLines())
Try it online!
Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.
Doubled | Tripled | Quadrupled
Why this works:
readLines()
will actually reads the source file itself rather than stdin
. Hence, adding lines just increments the length()
of the vector returned by readLines()
. Therefore, we compute !(1-length())
to obtain 1
whenever length()==1
and 0
when length()!=1
, adding one to have the desired effect.
add a comment |
MATL, 9 bytes
vxHQXH4=Q
Uses n = 1.
Try it online! Original, doubled, tripled, quadrupled.
Explanation
This uses clipboard H to store state information. Function H
pastes the clipboard contents onto the stack. Function XH
copies the top of the stack into the clipboard. The clipboard initially contains the number 2
.
Each time the snippet vxHQXH4=Q
is run it does the following.
The stack contents, if any, are deleted (vx
). The clipboard contents are pushed (H
) and incremented (Q
), and the result is copied back into the clipboard (XH
). This gives 4
the second time, and only that time.
The number in the stack is tested for equality with 4
(4=
) and incremented (Q
). This gives 2
for 4
(second time), and 1
otherwise (any other time).
add a comment |
Charcoal, 10 bytes
PI⊕⁼²L⊞Oυω
Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));
.
add a comment |
Python 2, 9 bytes
Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.
';exit(2)
Try it online! | Doubled | Tripled | Quadrupled
Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2)
which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.
add a comment |
Runic Enchantments, 29 bytes
^w '
/1@ 3
/ ~!4
2'51w
/yyy
Try it online!
Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.
Twice
Thrice
And frice for good measure.
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%2f177881%2fjust-twice-is-nice%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
R, 27 25 bytes
1+!1-length(readLines())
Try it online!
Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.
Doubled | Tripled | Quadrupled
Why this works:
readLines()
will actually reads the source file itself rather than stdin
. Hence, adding lines just increments the length()
of the vector returned by readLines()
. Therefore, we compute !(1-length())
to obtain 1
whenever length()==1
and 0
when length()!=1
, adding one to have the desired effect.
add a comment |
R, 27 25 bytes
1+!1-length(readLines())
Try it online!
Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.
Doubled | Tripled | Quadrupled
Why this works:
readLines()
will actually reads the source file itself rather than stdin
. Hence, adding lines just increments the length()
of the vector returned by readLines()
. Therefore, we compute !(1-length())
to obtain 1
whenever length()==1
and 0
when length()!=1
, adding one to have the desired effect.
add a comment |
R, 27 25 bytes
1+!1-length(readLines())
Try it online!
Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.
Doubled | Tripled | Quadrupled
Why this works:
readLines()
will actually reads the source file itself rather than stdin
. Hence, adding lines just increments the length()
of the vector returned by readLines()
. Therefore, we compute !(1-length())
to obtain 1
whenever length()==1
and 0
when length()!=1
, adding one to have the desired effect.
R, 27 25 bytes
1+!1-length(readLines())
Try it online!
Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.
Doubled | Tripled | Quadrupled
Why this works:
readLines()
will actually reads the source file itself rather than stdin
. Hence, adding lines just increments the length()
of the vector returned by readLines()
. Therefore, we compute !(1-length())
to obtain 1
whenever length()==1
and 0
when length()!=1
, adding one to have the desired effect.
edited 5 hours ago
answered 5 hours ago
Giuseppe
16.5k31052
16.5k31052
add a comment |
add a comment |
MATL, 9 bytes
vxHQXH4=Q
Uses n = 1.
Try it online! Original, doubled, tripled, quadrupled.
Explanation
This uses clipboard H to store state information. Function H
pastes the clipboard contents onto the stack. Function XH
copies the top of the stack into the clipboard. The clipboard initially contains the number 2
.
Each time the snippet vxHQXH4=Q
is run it does the following.
The stack contents, if any, are deleted (vx
). The clipboard contents are pushed (H
) and incremented (Q
), and the result is copied back into the clipboard (XH
). This gives 4
the second time, and only that time.
The number in the stack is tested for equality with 4
(4=
) and incremented (Q
). This gives 2
for 4
(second time), and 1
otherwise (any other time).
add a comment |
MATL, 9 bytes
vxHQXH4=Q
Uses n = 1.
Try it online! Original, doubled, tripled, quadrupled.
Explanation
This uses clipboard H to store state information. Function H
pastes the clipboard contents onto the stack. Function XH
copies the top of the stack into the clipboard. The clipboard initially contains the number 2
.
Each time the snippet vxHQXH4=Q
is run it does the following.
The stack contents, if any, are deleted (vx
). The clipboard contents are pushed (H
) and incremented (Q
), and the result is copied back into the clipboard (XH
). This gives 4
the second time, and only that time.
The number in the stack is tested for equality with 4
(4=
) and incremented (Q
). This gives 2
for 4
(second time), and 1
otherwise (any other time).
add a comment |
MATL, 9 bytes
vxHQXH4=Q
Uses n = 1.
Try it online! Original, doubled, tripled, quadrupled.
Explanation
This uses clipboard H to store state information. Function H
pastes the clipboard contents onto the stack. Function XH
copies the top of the stack into the clipboard. The clipboard initially contains the number 2
.
Each time the snippet vxHQXH4=Q
is run it does the following.
The stack contents, if any, are deleted (vx
). The clipboard contents are pushed (H
) and incremented (Q
), and the result is copied back into the clipboard (XH
). This gives 4
the second time, and only that time.
The number in the stack is tested for equality with 4
(4=
) and incremented (Q
). This gives 2
for 4
(second time), and 1
otherwise (any other time).
MATL, 9 bytes
vxHQXH4=Q
Uses n = 1.
Try it online! Original, doubled, tripled, quadrupled.
Explanation
This uses clipboard H to store state information. Function H
pastes the clipboard contents onto the stack. Function XH
copies the top of the stack into the clipboard. The clipboard initially contains the number 2
.
Each time the snippet vxHQXH4=Q
is run it does the following.
The stack contents, if any, are deleted (vx
). The clipboard contents are pushed (H
) and incremented (Q
), and the result is copied back into the clipboard (XH
). This gives 4
the second time, and only that time.
The number in the stack is tested for equality with 4
(4=
) and incremented (Q
). This gives 2
for 4
(second time), and 1
otherwise (any other time).
edited 3 hours ago
answered 4 hours ago
Luis Mendo
73.9k886291
73.9k886291
add a comment |
add a comment |
Charcoal, 10 bytes
PI⊕⁼²L⊞Oυω
Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));
.
add a comment |
Charcoal, 10 bytes
PI⊕⁼²L⊞Oυω
Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));
.
add a comment |
Charcoal, 10 bytes
PI⊕⁼²L⊞Oυω
Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));
.
Charcoal, 10 bytes
PI⊕⁼²L⊞Oυω
Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));
.
answered 5 hours ago
Neil
79k744175
79k744175
add a comment |
add a comment |
Python 2, 9 bytes
Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.
';exit(2)
Try it online! | Doubled | Tripled | Quadrupled
Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2)
which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.
add a comment |
Python 2, 9 bytes
Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.
';exit(2)
Try it online! | Doubled | Tripled | Quadrupled
Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2)
which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.
add a comment |
Python 2, 9 bytes
Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.
';exit(2)
Try it online! | Doubled | Tripled | Quadrupled
Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2)
which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.
Python 2, 9 bytes
Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.
';exit(2)
Try it online! | Doubled | Tripled | Quadrupled
Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2)
which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.
answered 5 hours ago
Mr. Xcoder
31.4k759198
31.4k759198
add a comment |
add a comment |
Runic Enchantments, 29 bytes
^w '
/1@ 3
/ ~!4
2'51w
/yyy
Try it online!
Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.
Twice
Thrice
And frice for good measure.
add a comment |
Runic Enchantments, 29 bytes
^w '
/1@ 3
/ ~!4
2'51w
/yyy
Try it online!
Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.
Twice
Thrice
And frice for good measure.
add a comment |
Runic Enchantments, 29 bytes
^w '
/1@ 3
/ ~!4
2'51w
/yyy
Try it online!
Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.
Twice
Thrice
And frice for good measure.
Runic Enchantments, 29 bytes
^w '
/1@ 3
/ ~!4
2'51w
/yyy
Try it online!
Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.
Twice
Thrice
And frice for good measure.
edited 2 hours ago
answered 5 hours ago
Draco18s
1,226618
1,226618
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).
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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.
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%2fcodegolf.stackexchange.com%2fquestions%2f177881%2fjust-twice-is-nice%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
4
All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago