What is the Sandbox?

This "Sandbox" is a place where Code Golf users can get feedback on prospective challenges they wish to post to the main page. This is useful because writing a clear and fully specified challenge on the first try can be difficult. There is a much better chance of your challenge being well received if you post it in the Sandbox first.

To post to the Sandbox, scroll to the bottom of this page or click on the "Add Proposal" link below, and click "Answer This Question". Click "OK" when it asks if you really want to add another answer. Write your challenge just as you would when actually posting it. You may also add some notes about specific things you would like to clarify before posting it. Other users will help you improve your challenge by rating and discussing it. When you think your challenge is ready for the public, go ahead and post it, replace the post here with a link to the challenge and delete it.

See the Sandbox FAQ for more information on how to use the Sandbox.

The Sandbox works best if you sort posts by "active".

Add Proposal

Search the Sandbox

Browse your pending proposals

Get the Sandbox Viewer to view the sandbox more easily

To add an inline tag to a proposal use shortcut link syntax with a prefix: [tag:king-of-the-hill]

  • \$\begingroup\$ How are tags added to questions? \$\endgroup\$ – guest271314 Jan 9 at 7:51
  • \$\begingroup\$ @guest271314 You can use this markup to create a tag in a draft: [tag:code-golf] \$\endgroup\$ – DJMcMayhem Aug 29 at 15:19
  • \$\begingroup\$ Why no featured anymore? Can't we have it auto-added or something? \$\endgroup\$ – JL2210 Sep 26 at 15:57
  • 1
    \$\begingroup\$ @JL2210 We now have a permanent info box that links to the Sandbox, so the featured tag isn't necessary \$\endgroup\$ – caird coinheringaahing Sep 29 at 13:43

2585 Answers 2585


I have seen many a trivial answer in jelly, so i wish to propose:

Challenge: A non-trivial answer

  • Input two strings
  • If the two strings are integers and are equal, output a truthy value.
  • Otherwise, output a falsy value.


  • You may receive non-integer inputs.
  • You will never receive an integer that is outside the bounds [-2³¹, 2³¹). Rules

  • Standard loopholes are disallowed.


  • This is not your standard code-golf
  • the winner person who posts the longest program.
  • an entry is invalidated if someone posts a shorter program in the same language.
  • \$\begingroup\$ Note: i don't believe that this is code-bowling, as only the shortest program in any language is eligible; this is more about finding an obscure language in which the task is actually hard to do, rather than obscure languages where the task is too easy. \$\endgroup\$ – Andrew Hill Nov 2 '17 at 22:19
  • \$\begingroup\$ Easy win for Unary. \$\endgroup\$ – Dennis Nov 2 '17 at 22:26
  • \$\begingroup\$ what a horrible way of representing a program, yeah... any type of 'longest sensible program' task is not so helpful. \$\endgroup\$ – Andrew Hill Nov 3 '17 at 3:20
  • \$\begingroup\$ @Dennis do you think that restricting to languages that have won a standard code-golf challenge in 2017 would help? It does seem that if we have to start putting in language or other implementation restrictions, then this isn't worth posting. Oh well. guess this stays on the proposal board. \$\endgroup\$ – Andrew Hill Nov 3 '17 at 3:22

Golf This Question

Your program should output to STDOUT the full text of this question as it appears on your screen, so no HTML. This includes the title and the body. Please do not edit this question whatsoever so-as to keep it the same for all programs.

No reading the text from a file or the internet

This is , so the shortest code wins!

Sandbox Is this a good question? Is there anything I should clarify?

  • \$\begingroup\$ similar but obviously different since it requires the markdown. \$\endgroup\$ – Giuseppe Nov 8 '17 at 16:17
  • 1
    \$\begingroup\$ You should add some rules and winning criteria (which would increase the length of the question, but oh well) \$\endgroup\$ – HyperNeutrino Nov 8 '17 at 17:28
  • 1
    \$\begingroup\$ I'm not sure what much this adds beyond the typical KC challenges, and thus it's likely to be closed as a dupe. \$\endgroup\$ – AdmBorkBork Nov 8 '17 at 17:36
  • 1
    \$\begingroup\$ @AdmBorkBork I guess OP means to allow access to the internet, in which case it's very different, but I'm not sure... If so, it's basically a challenge about parsing html, or get the result directly from the API (if that's possible). \$\endgroup\$ – Stewie Griffin Nov 8 '17 at 18:40
  • \$\begingroup\$ Include tag about Kolmogorov complexity. \$\endgroup\$ – Heimdall Nov 11 '17 at 8:43
  • \$\begingroup\$ Why the downvotes? \$\endgroup\$ – FantaC Nov 21 '17 at 23:24

Find the min swaps for order one powerset for a List

The question it is write one powerset function and one sort function tha minimize the swaps for doing one order with this compare function on powerset of the List A

cmp(a,b) -- a and b are subset of the list A
    if sizeof a > sizeof b then (swap a and b; return)
    if sizeof a < sizeof b than return
    for i in 1..(sizeof a) repeat
         for j in 1..(sizeof A) repeat
               if a[i]==A[j] then return
               if b[i]==A[j] then (swap a and b; return)

the result of this compare function on the sets wuold be the follow:

(15) -> powSet([1,2,3])
   (15)  [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
                                                      Type: List List Any
(16) -> powSet([3,2,1])
   (16)  [[],[3],[2],[1],[3,2],[3,1],[2,1],[3,2,1]]
                                                      Type: List List Any

note that order depend not from the number element, but on the position on the start List A=[1,2,3]

(17) -> powSet([1,2,3,4,5,6])
   [[], [1], [2], [3], [4], [5], [6], [1,2], [1,3], [1,4], [1,5], [1,6], [2,3],
    [2,4], [2,5], [2,6], [3,4], [3,5], [3,6], [4,5], [4,6], [5,6], [1,2,3],
    [1,2,4], [1,2,5], [1,2,6], [1,3,4], [1,3,5], [1,3,6], [1,4,5], [1,4,6],
    [1,5,6], [2,3,4], [2,3,5], [2,3,6], [2,4,5], [2,4,6], [2,5,6], [3,4,5],
    [3,4,6], [3,5,6], [4,5,6], [1,2,3,4], [1,2,3,5], [1,2,3,6], [1,2,4,5],
    [1,2,4,6], [1,2,5,6], [1,3,4,5], [1,3,4,6], [1,3,5,6], [1,4,5,6],
    [2,3,4,5], [2,3,4,6], [2,3,5,6], [2,4,5,6], [3,4,5,6], [1,2,3,4,5],
    [1,2,3,4,6], [1,2,3,5,6], [1,2,4,5,6], [1,3,4,5,6], [2,3,4,5,6],
                                                      Type: List List Any

Win the one that minimize the swaps for order the powerset of the follow list


Patterns match for composed expression

If we have one math expression B(x) [that mean in B appear x] [math expression is one expression where appear only symbols for function and operator of mathematics that are ok for type and compose ] Find the max lengt subexpression g(x) of B contain x such that


And f(y) and g(x) are both math expression.

Find Max for a function in one interval

R is the set of real numbers. Is given a function f:A->R from set A (⊆ R) to the R, continue and derivable in one close interval

 [a, b]⊆A

Write the shortest program for find

 max{f(x): x in [a,b]}

knowing the function f(x) derivable in the interval [a,b]. The solution has to be correct at last until the V digit after the float point, and for all functions f that has 10 value max in which f'(x)= 0 in [a, b]. codegolf tag

On Riemann Zeta function domain

If Zeta:C->C is the Riemann Zeta function, we give the set:

 W={b: 0<b<100 and Re(Zeta(0.5+i*b))=-Im(Zeta(0.5+i*b))}

Where Re() return the real part of its argument, and Im() return the imaginary part of its argument.

It is requested to calculate one approximation of each element of W; this means here all b in float numbers with b in 0..100 such way


at last, to put all together in a array or list or set of float.

One can note that the below set of zeros for the Riemann function is a subset of above W set.

 {b: 0<b<100 and Zeta(0.5+i*b)=0}

Some test

Some numbers b approssimation to solution of equation


the ones that are approssimation to solution of equation Zeta(0.5+i*x)=0 too

[14.134725, 21.022039, 30.424876, 32.935061, 37.58617815, 40.918719, 43.327073, 48.00515, 49.773832]

the ones not approssimation to solution of equation Zeta(0.5+i*x)=0 too

[12.458493623791109003, 24.351346882420215577, 28.716611773969890307]

The code more short in bytes that find all these approssimations of element of the set W wins...

Code golf tag

  • 2
    \$\begingroup\$ You're going to need to phrase this better and be more precise about what you're asking for. Currently, this sounds a little bit like a homework question. \$\endgroup\$ – numbermaniac Apr 22 '17 at 13:25
  • \$\begingroup\$ This is also formatted improperly. \$\endgroup\$ – Erik the Outgolfer Apr 22 '17 at 13:27
  • \$\begingroup\$ This appears to permit hard-coding the output, which is generally a sign of a bad question. Why not parameterise it? \$\endgroup\$ – Peter Taylor Apr 22 '17 at 15:09
  • \$\begingroup\$ I think now I ' m clear... What is not clear or ambiguous? \$\endgroup\$ – RosLuP Apr 22 '17 at 15:40
  • \$\begingroup\$ possibly a little too much difficult... there are numbers that seems solutions but if i increase digits they are just wrong.... \$\endgroup\$ – RosLuP Apr 23 '17 at 17:55
  • 1
    \$\begingroup\$ Also, it's "approximation". \$\endgroup\$ – Steve Bennett May 22 '17 at 6:40
  • 2
    \$\begingroup\$ Being (continuous and) differentiable is quite a weak constraint. There are e.g. nasty functions which are differentiable but whose derivative is not integrable. \$\endgroup\$ – Peter Taylor May 22 '17 at 11:47
  • \$\begingroup\$ One continue function in one close interval [a, b] has max and min \$\endgroup\$ – RosLuP May 22 '17 at 13:48
  • \$\begingroup\$ So for the order a PowerSet of one list is all clear... \$\endgroup\$ – RosLuP Nov 16 '17 at 13:30

Shortest code to draw a png from stdin

Rules :

  • You’re free to use any image library you want as long as the image library is designed in the same language as your answer.
  • The image should be displayed in an Xorg or wayland window or a console framebuffer.
    If you’re displaying to a window, you don’t need to create any windows control (in that case the programs ends with CTRL+C).
  • The stdin stream doesn’t eof. so the only way to get the image size is to parse png data. Once the image had been displayed, /dev/stdin should be closed.
  • Your answer shouldn’t crash on random data.

The answer using the fewest bytes wins !

  • \$\begingroup\$ Way too easy for some languages and way too hard for others. And how would I do it if my language can't produce graphical output? What if I have neither STDIN nor STDOUT? \$\endgroup\$ – Nissa Nov 29 '17 at 16:21
  • \$\begingroup\$ @StephenLeppik : the point of my question is to suggest that language choice is restricted to languages that can run on Unix systems supportting screening. I don’t know too easy answers, but libpng16 along Xorg libraries should make it possible in a few line of code. \$\endgroup\$ – user2284570 Nov 29 '17 at 16:45
  • 2
    \$\begingroup\$ Restricting it to such a small list of languages is a good way of alienating half the site. \$\endgroup\$ – Nissa Nov 29 '17 at 16:52
  • \$\begingroup\$ @StephenLeppik : It just basically, restrict to all languages which can write a hello word. Writing to a framebuffer is just as easy as to write a raw image in device file which opens like a normal file so this doesn’t matter. I’d rather say the list of language that can print a Hello world on Linux or ʙꜱᴅ is huge but not small. \$\endgroup\$ – user2284570 Nov 30 '17 at 17:34
  • \$\begingroup\$ Believe it or not, displaying an image is not a capability that directly follows from being able to print text… \$\endgroup\$ – Unrelated String Mar 22 at 2:40
  • \$\begingroup\$ @UnrelatedString that’s because it’s not possible to do it from text I’m asking this. But this is defintely like writing to a file. \$\endgroup\$ – user2284570 Mar 22 at 19:31

No strings code bowling

I created this challenege idea with @redwolfprograms. In the challenge, you would create the longest program possible (code-bowling) it can do anything, but it cannot:

  • Contain any strings, or quotation marks/apostrophes/backticks
  • Contain the same alphanumeric byte more than twice
  • Conatin the same non alphanumeric byte more than three times
  • 2
    \$\begingroup\$ What is the task we have to solve? Is it really alphanumeric character but non alphanumeric byte? \$\endgroup\$ – Dennis Apr 17 '18 at 13:50
  • \$\begingroup\$ Why do you mix characters and bytes? \$\endgroup\$ – user202729 Apr 17 '18 at 14:01
  • \$\begingroup\$ I feel like there are a lot of languages that would score the maximum (768) by not (strictly speaking) having alphanumeric characters, and then just wrapping everything in a string: "[3x each other byte value]"". \$\endgroup\$ – Kamil Drakari Apr 17 '18 at 14:08
  • \$\begingroup\$ I think you got bytes and characters mixed up. Both should be bytes, and make sure you specify the program can do anything. \$\endgroup\$ – Redwolf Programs Apr 17 '18 at 14:26
  • \$\begingroup\$ People, the point of the sandbox is to add suggestions. This question has been downvoted several times. Why? \$\endgroup\$ – Redwolf Programs Apr 17 '18 at 22:39
  • 3
    \$\begingroup\$ @RedwolfPrograms downvotes are a way for people to say that this challenge in the current state shouldn't be posted to main. If the challenge gets changed enough to make it viable and interesting the downvotes will be reverted (or upvotes from other people will outweigh them). \$\endgroup\$ – Leo Apr 18 '18 at 1:32
  • \$\begingroup\$ Maybe this challenge should have a "No strings" rule? \$\endgroup\$ – Redwolf Programs Apr 18 '18 at 1:59
  • \$\begingroup\$ Not being able to use e is not really that much of a big deal. Even in C you can get around it easily. (It would prevent you from returning values from functions, but you could just use pass by reference instead.) So that restriction wouldn't really add much to the challenge. \$\endgroup\$ – Nathaniel Apr 18 '18 at 8:35
  • \$\begingroup\$ Now that strings are forbidden, one could just create a huge variable whose name is all the alphanumeric characters twice. This is the bane of any longes code that... challenge. Consider adding some more interesting restrictions. \$\endgroup\$ – Asone Tuhid Apr 18 '18 at 14:35

Palindromic Programming

In English (And other languages), a palindrome is a word that is the same read backwards. This is your challenge: to build a program that is the same run backwards. For example:

var rav
f4x0 = 0x4f

But one potential problem would be a string, regex, or variable name that is very long. So here's the rule: no variable definitions, variable names, or constant can use more than 10 bytes of text. The program doesn't have to do anything, as long as it just doesn't error and is the same backwards. But here's the catch: It doesn't have to be the same backwards, it just has to run the same. Standard loopholes not allowed, and you're code bowling.

  • 5
    \$\begingroup\$ I'm fairly certain that "Do two programs run the same" is impossible to verify, especially since the program isn't required to actually do anything visible. The stuff about "no variable definitions, variable names, or constant can use more than 10 bytes of text" is also not a very well defined constraint, nor does it forbid the most common type of padding: comments (which are at least as difficult to define). \$\endgroup\$ – Kamil Drakari Apr 18 '18 at 18:39
  • \$\begingroup\$ In Japt, and many other golfing languages I'd assume, it's trivial to construct an endlessly long program that matches all of your current criteria. Altering, the a-s are method calls and constants, neither being longer than 10 bytes: ethproductions.github.io/japt/… \$\endgroup\$ – Nit Apr 18 '18 at 18:58
  • 2
    \$\begingroup\$ I think the general challenge idea is interesting, that the program has to be a palindrome, but I think it would work better if there was a specific task the program had to achieve. \$\endgroup\$ – Nit Apr 18 '18 at 18:59
  • \$\begingroup\$ Agreed. It's not enough to have a source-restriction; there needs to be a task to solve. Some direction needs to be given to us. Also, you didn't disallow comments. And even though a single constant is limited in size, it's trivial to add more constants. tio.run/##K6gsycjPM/r/39CaBvD/fwA \$\endgroup\$ – mbomb007 Apr 18 '18 at 19:47
  • \$\begingroup\$ Okay. I'll disallow comments. What would be a good task to accomplish? \$\endgroup\$ – Redwolf Programs Apr 18 '18 at 23:51
  • \$\begingroup\$ @RedwolfPrograms The problem is you are assuming language features. For every restriction you can come up with, I can find a programming language where those restrictions doesn't make sense (and thus make the program arbitrarily long) \$\endgroup\$ – user202729 Apr 19 '18 at 1:55
  • \$\begingroup\$ @user202729 True. However, it could be possible to make the program required to do a certain task, and therefore any random palindromic text wouldn't work? \$\endgroup\$ – Redwolf Programs Apr 19 '18 at 2:18
  • \$\begingroup\$ @RedwolfPrograms It's hard to write a successful code bowling problem (where it's hard for people to get arbitrarily large score) Just try it. \$\endgroup\$ – user202729 Apr 19 '18 at 2:32
  • \$\begingroup\$ @user202729 Hopefully, I'll find something cool, like the "Pristine and Unique Code Bowling" challenge, but better. \$\endgroup\$ – Redwolf Programs Apr 19 '18 at 2:34
  • 5
    \$\begingroup\$ Disallowing comments is impossible. Seriously. We've tried so many times. Beyond the fact that different languages have different meanings of "comment": Is a string a comment? A really big number? A really long variable name? All of these can be used as effectively as a comment, and are impossible to nail down. \$\endgroup\$ – Nathan Merrill Apr 19 '18 at 2:59
  • \$\begingroup\$ Fundamentally, code-bowling doesn't work as the "core" of the challenge. What you really need is a challenge that is already about source layout/manipulation, and then fit code-bowling onto it. More of my thoughts \$\endgroup\$ – Nathan Merrill Apr 19 '18 at 3:03

[Posted, but reference kept]

Given a function with boolean inputs a1, ..., an and a boolean output, output an array of numbers 0 to n satisfying:

For each item in the truth value, if (from the array you output, we repeatedly remove two adjacent numbers x and y satisfying that, for each integer n between x+0.5 and y+0.5, an=1), we can get an empty result array iff the given function's output is 1. You can assume the result exist.

Sample input:

a[1] a[2] result
0    0    0
0    1    0
1    0    0
1    1    1

Sample output: 0 2

Sample input:

a[1] a[2] result
0    0    0
0    1    1
1    0    1
1    1    1

Sample output: 0 1 2 0 1 2

Sample input:

a[1] a[2] result
0    0    1
0    1    1
1    0    1
1    1    1

Sample output: (empty)

shortest code win, but optimizing running time and result length is encouraged(I won't accept but I may upvote)

You may check your answer here

  • 1
    \$\begingroup\$ The spec makes absolutely no sense to me. What does it mean to remove a number from a truth table? \$\endgroup\$ – Peter Taylor Apr 25 '18 at 12:13
  • 2
    \$\begingroup\$ Still makes no sense. Maybe if you give a detailed worked example I would be able to reverse engineer the spec and propose some changes to the wording. \$\endgroup\$ – Peter Taylor Apr 25 '18 at 14:59

Not today

The challenge

Given a timestamp (date and time) output another timestamp that differs from the input at all positions, i.e. has different value for year, month, day, hour and minute.

Input and output

A timestamp in any reasonable format including, but not limited to:

  • timestamp type, if your language supports it,
  • string,
  • number (eg. number of seconds from specific fixed date),
  • array of numbers or strings.

You may assume valid date (AD) and time as input and must have valid date (AD) and time as output. You can follow simplified date regulations for the whole time since year 1 AD:

  • respective month lengths: 31, 28/29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;
  • leap years are needed to be taken into account;
  • a day has 24 hours and an hour has 60 minutes - no need to account for leap seconds and other anomalies;
  • you can handle midnight any way you prefer (as 00:00 or 24:00).

If you choose, you can support seconds and milliseconds, but the difference condition doesn't apply.


2018-05-01 17:28 --> 2000-01-02 12:11
0001-01-01 00:01 --> 3000-12-31 23:59
3000-12-31 23:59 --> 0101-01-01 01:01
  • 2
    \$\begingroup\$ I'm afraid that this is too trivial. Just add 1 year, 32 days, 1 hour and 1 minute. (about 34390860 seconds) There may be better constants, but once a good constants had been figured out, people would just port that to other languages. Boring. \$\endgroup\$ – user202729 May 2 '18 at 8:59
  • \$\begingroup\$ @user202729 do you think removing the input/output as number will make it less trivial (without making it a chameleon challenge)? Also, maybe making an upper and lower limit for the date would add some difficulty? \$\endgroup\$ – pajonk May 2 '18 at 19:29
  • \$\begingroup\$ Javascript String->string s=>1+s \$\endgroup\$ – l4m2 May 3 '18 at 10:58

Reverse Code Golf- Print out two by using variables a and b that both equal one and adding them without any extraneous lines.

Your task is very simple, display that 1+1=2, except you need as many commands and non extraneous lines as possible.

What counts as non-extraneous? If one cannot remove any kind of sequence or segment of commands, then the program is counted as non-extraneous. The variable names need to be only one byte each, without any kind of trailing zeroes or insignificant digits.

Input: nothing

Output: "2" or 2 or whatever, as long as the program runs 1+1.

Sample: Java- System.out.println( Integer.parseInt( "1" ) + Integer.parseInt( "1"));


Write a function that takes compares each pair of adjacent items and swaps them if they are in the wrong order. The pass through the list is repeated until no swaps are needed, which indicates that the list is sorted.

Static visualization of bubble sort and a gif explanation.

Bubble sort explanation Bubble sort gif

The steps go from left to right. At each stage, an exchange is made. The darkest color has the most value and finds its final place (bottom) first.

The rules

  • The function must take a list of integers that shall be sorted (less than 20 elements)

  • The function must print each step of the sort.

  • Yes, built-in Bubble sort algorithms are permitted.
  • No, you can not assume only positive integers or unique integers.
  • It's so the shortest code wins!

Test cases

input list
5 4 3 1 2
1 2 3 5 4
11 4 2 1 5


Add an interpreter so the submission can be tested. It is allowed to write this interpreter yourself for a previously unimplemented language.


It's my first code-golf idea I'm fully open to improving it with more experienced users if I missed something.

This is not a duplicate of Bubble sorting in progress.

Thanks to @Erik the Outgolfer for encouraging me to post my idea in the sandbox.

  • 3
    \$\begingroup\$ Can you add one walked-through example? I.e. show each pass. \$\endgroup\$ – Adám Jun 20 '18 at 13:04
  • \$\begingroup\$ You note it isn't a duplicate of the in-progress bubble sort, but what distinguishes it from Golf me a bubble sort, which was closed as a dupe of that? \$\endgroup\$ – Geobits Jun 20 '18 at 13:10
  • \$\begingroup\$ @Geobits This was not a dup but unclear. \$\endgroup\$ – DIDIx13 Jun 20 '18 at 13:12
  • \$\begingroup\$ Here's my c# non-golfed solution : dotnetfiddle.net/ZFkl5y \$\endgroup\$ – DIDIx13 Jun 20 '18 at 14:01
  • 7
    \$\begingroup\$ You claim it's not a duplicate of codegolf.stackexchange.com/q/92753 but you don't adduce any argument to support that claim, and I can't see any significant difference. (The upper limit is a trivial difference IMO). \$\endgroup\$ – Peter Taylor Jun 21 '18 at 6:14

Send the pairs

Write two program A and B. A takes 1024 pairs of integers (a,b), where 0≤a<232, 0≤b<1024, and all as are different. Output a positive integer. B take the output of A and one a from the input pairs of A, and output its b.

Smallest output of A under a same random test data win.

  • \$\begingroup\$ To be a truly objective challenge, the test data should be included in the question; but then B could hard-code it and A could output 1 as a flag to invoke the hard-coded data. \$\endgroup\$ – Peter Taylor Jul 24 '18 at 20:03
  • 1
    \$\begingroup\$ @PeterTaylor I don't think hiding the test case make the challenge less objective. \$\endgroup\$ – user202729 Jul 25 '18 at 7:45
  • 2
    \$\begingroup\$ @user202729, codegolf.meta.stackexchange.com/a/1369/194 . If I can't tell whether a change to my answer makes it better or worse, it's not an objective challenge. If the only person who can tell is the OP, then the judging is a black box which from the outside is indistinguishable from a purely subjective judgement. \$\endgroup\$ – Peter Taylor Jul 25 '18 at 7:50
  • \$\begingroup\$ @PeterTaylor codegolf.meta.stackexchange.com/a/308 (+15 vote) \$\endgroup\$ – l4m2 Jul 25 '18 at 10:44
  • 1
    \$\begingroup\$ @l4m2, that agrees perfectly with the last sentence of my previous comment. \$\endgroup\$ – Peter Taylor Jul 25 '18 at 11:18
  • \$\begingroup\$ @PeterTaylor No if the test is public some days after \$\endgroup\$ – l4m2 Jul 25 '18 at 11:33
  • \$\begingroup\$ @l4m2, then you would lack a winning criterion until you post those tests publicly. \$\endgroup\$ – JungHwan Min Jul 29 '18 at 14:41
  • \$\begingroup\$ @JungHwanMin A recent meta post explicitly allowed that. \$\endgroup\$ – user202729 Aug 1 '18 at 2:52

Once, I thought of this. Rules:

1: You must make a fractal that looks like the specified thing.

2: One thing per round.

3: Algorithms are rated by two scores: Resemblance and Compactness. The one that gets the highest scores wins!

4: Only I can tell what thing must be made.

5: Only one entry per user. Do not plagiarize.

6: One may code in anything they wish.

7: Have fun!

Round 1: Squidward's head!

  • \$\begingroup\$ Erchh! OK OK Remove the PM stufs. didnt know \$\endgroup\$ – Ikura Jul 31 '18 at 0:12
  • 2
    \$\begingroup\$ On this site, winning criteria has to be objectively defined. (by tradition, I have to admit... there is popularity-contest (read the tag info page for more details), but if you really want to make a pop-con, be careful) "Resemblance" is quite... subjective, unless you can define an objective formula. Also, what is a fractal exactly? \$\endgroup\$ – user202729 Jul 31 '18 at 4:05
  • \$\begingroup\$ For example, how many points would I score if I just made the initial fractal look like the image and have it spiral inwards? What is the objective formula of Compactness/Resemblance \$\endgroup\$ – Jo King Jul 31 '18 at 6:04
  • \$\begingroup\$ A fractal is a shape that recurses. It has copies of itself in it. Analyze the Mandelbrot set, you'll see mandelbrots in mandelbrots. What is a pop-con? Sounds like a soda convention. I'd love to go there! JK \$\endgroup\$ – Ikura Jul 31 '18 at 14:32
  • 1
    \$\begingroup\$ @user202729, experts are unable to agree on the definition of a fractal. That aside, this looks more like a forum game than a good fit for this site. \$\endgroup\$ – Peter Taylor Jul 31 '18 at 14:46
  • \$\begingroup\$ Oh, popularity? No. No voting. I will work on my formula, with a new parameter: Mandelbrottiness, which is more or less Goldilocks. \$\endgroup\$ – Ikura Jul 31 '18 at 14:54
  • \$\begingroup\$ I attempted doing this on Encyclopedia Spongebobia, then went here. \$\endgroup\$ – Ikura Jul 31 '18 at 14:55
  • \$\begingroup\$ Then maybe a Stack Exchange for off-topic? \$\endgroup\$ – Ikura Jul 31 '18 at 14:57
  • \$\begingroup\$ @Ikura There are no such SE site, because it would generate low-quality content. Try Quora or Reddit... \$\endgroup\$ – user202729 Jul 31 '18 at 15:15
  • \$\begingroup\$ Ergo! Goin' to the Kongregate Off-topic forum! \$\endgroup\$ – Ikura Jul 31 '18 at 18:48

Write a program that takes a list of strings as input and creates trees of prefixes as such:


Which would output:

Hi Hi_there Hi_there_how_are_you?
Ma Many_of_us
   May_has_11_days May_has_11_days
IWillLearnThe IWillLearnTheTrombone

The input strings shall contain no spaces and the output shall be separated by at least one space, any number of extra line breaks or spaces are allowed. The output above is formatted to explain the challenge, the following formatting is also valid:

Hi Hi_there Hi_there_how_are_you? Hi_there_would_you_mind? Hi_the_weather_is_nice Hills_are_green Ma Many_of_us May_has_11_days May_has_11_days May_has_11_days_left IWillLearnThe IWillLearnTheTrombone IWillLearnTheSaxophone IWillLearnThePiano

This question is a kind of reverse of this Prefix Tree Traversal. This is code golf, shortest code in bytes win.

Note: I'm struggling with the output? What would be the most 'fun'/ have high potential for cleverness? The one I have now just looks like a mess. Can i have output as a list of lists(of lists)? Or do that hinder people?

  • 1
    \$\begingroup\$ Related (make an alphabeTrie). Very close, though I think it might depend on your output format on whether it is a dupe \$\endgroup\$ – Jo King Sep 23 '18 at 8:48
  • \$\begingroup\$ I would mark it as a duplicate to the one that Jo King linked. \$\endgroup\$ – AdmBorkBork Sep 27 '18 at 19:54

I'm glad the sandbox exists because I have a few issues coming up with the right wording for this.


Theoretically, any numeric pattern should exist somewhere in the decimal places of pi.


Given any numeric input, find the index (location?) of the first occurrence of that input in the decimal place of pi

Example cases:

  • 1 = 1
  • 14 = 1
  • 41 = 2
  • 897 = 11


any numeric input, can't see why it should be limited by any number of characters. I am not sure about limitations, but this could get computationally intense if it's a large sequence of numbers that occur very deep into pi. Do I need to add any restrictions to cater for computational complexity?

  • 5
    \$\begingroup\$ We'be had this challenge before. That one only requires the first few digits, but I think we've had enough challenges about pi that this won't add anything \$\endgroup\$ – H.PWiz Sep 25 '18 at 7:36
  • 2
    \$\begingroup\$ "Theoretically, any numeric pattern should exist somewhere in the decimal places of pi." - how do you know that? \$\endgroup\$ – ngn Sep 25 '18 at 10:00

This question is a simplified description of the requirement described at Permutations to the nines

Given input integer (minimum) where the first digit is always 1 and the adjacent digits are increasing in value, e.g.,





with the ability to handle up to the integer


where the maximum integer is always the input integer in reverse order, e.g.,







Return a list (array) of each number between the input minimum and maximum integer which satisfies three conditions

  1. the resulting integer list item includes only the individual numbers comprising the input number
  2. the resulting integer list item does not contain any duplicate individual digits
  3. the resulting integer list item is greater than the preceding integer list item and not greater than a following integer in the list

Test cases

Valid list items

12 -> [21] // done

123 -> [132,213,231,213,312,321] // done

Invalid list items

12345 -> 12344 // contains duplicate digits in whole number

123456789 -> 13256789 // not the next integer by increasing numeric value order

123456789 -> 987654322 // greater than maximum integer and duplicate digits

Winning criteria

The algorithm which uses the least amount of operations to compute the complete resulting list of items.


123 -> 123+5+4=132 // two mathematical computations

123 -> 123+9=132 // one mathematical computation (winning criteria)

(@JoKing suggested fastest-algorithm tag; math and code-challenge tags are also applicable)

  • \$\begingroup\$ @PeterTaylor Pared down version of the original question. \$\endgroup\$ – guest271314 Oct 8 '18 at 18:30
  • \$\begingroup\$ Am not as yet well-versed in Big-O notation. If the phrase "the least amount of operations to compute the complete resulting list of items" can be translated into Big-O notation, kindly suggest and edit the language used in the question. We are not interested in code length (this is not a code-golf question), but rather, that the code produces the expected result in the fewest, or least amount of total computational operations. \$\endgroup\$ – guest271314 Oct 8 '18 at 18:35
  • \$\begingroup\$ Ok, so if I understand the challenge, you give me a number N. I need to generate a list of numbers between N and M, where M = reverse(N). Each number in the list cannot have duplicate digits, can only consist of digits in N, and must be in strictly increasing order. Is this correct? \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 18:52
  • \$\begingroup\$ Assuming my above comment is correct: 1. Why is 123456789 -> 13256789 invalid, as the maximum is 987654321, which is bigger than 13256789? 2. You need a list of all possible operations. 3. Use the word digit when referring to the individual parts of a number. \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 18:57
  • \$\begingroup\$ @NathanMerrill Yes. Originally included using only the number 9 within the prerequisite criteria, though that inclusion appears to be challenging in itself to explain how the single number 9 can be employed to derive all list items. You are correct about 123456789 -> 13256789 being invalid. Was attempting to include invalid examples and to indicate that 13256789 should not be the next integer in the list following 123456789; the list should be in order from least to greatest integers. Ok, will use the term digit. \$\endgroup\$ – guest271314 Oct 8 '18 at 18:57
  • \$\begingroup\$ Thinking about this more, there's a really simplified way to describe this: You want the all permutations of the digits of N in strictly increasing order. Permutation \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 19:09
  • \$\begingroup\$ @NathanMerrill Yes, that is one way to put it. From perspective here, we are trying to use a number - the indexes of the initial input as a whole number - to generate all lexicographic permutations by using only math and the initial number (the current number) to do so. No loops, swaps, recursion, etc. Which am able to achieve using the code at the linked question, though the approach used there adds 9 to the initial (current) number. The challenge is to reduce the mathematical operations necessary to achieve the result - is at all possible. \$\endgroup\$ – guest271314 Oct 8 '18 at 19:12
  • \$\begingroup\$ I think describing it that way will make this challenge much clearer. Also, to be a fastest-algorithm, you really need to list all possible operations. \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 19:13
  • \$\begingroup\$ @NathanMerrill "I think describing it that way will make this challenge much clearer." Well, did that exhaustively in the linked question - with links to OEIS and previous inquiries which lead to here PPCG for context - which was closed due to "unclear what you are asking" votes codegolf.stackexchange.com/q/173145/31257, codegolf.meta.stackexchange.com/questions/16959. Posted this version of the question as users appear to not gather the original, more detailed question. Is this question codegolf.meta.stackexchange.com/a/16961/31257 clear to you? \$\endgroup\$ – guest271314 Oct 8 '18 at 19:15
  • \$\begingroup\$ No. That question is much too long. I don't think it is the word "Permutation" killing you there, it's everything else. \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 19:21
  • \$\begingroup\$ @NathanMerrill Well, here we are back to square 1. "too long" is a subjective measurement, though have been advised that users actually do have some means to time the "read" of a question, which will more than likely never do, here. This question is the bare minimum, and yet you suggest including more details. Cannot glean every individual users' idea about what is "too long" or does not include enough details. Perhaps somewhere in the middle that am as yet unable to reach. If a user takes the time to read the original question without protesting the length thereof - the details are there. \$\endgroup\$ – guest271314 Oct 8 '18 at 19:25
  • \$\begingroup\$ @NathanMerrill What edits to the original question or this question do you suggest? \$\endgroup\$ – guest271314 Oct 8 '18 at 19:26
  • \$\begingroup\$ All of the close reasons are subjective: "Unclear" is subjective, "Off-topic" is subjective, etc. I can give a full analysis of the other post, but I'd rather focus on this one. My first suggestion is to get rid of most of the requirements in favor of all permutations of the digits of N in strictly increasing order. The second thing you need to do is define what "operation" means. \$\endgroup\$ – Nathan Merrill Oct 8 '18 at 19:28
  • 1
    \$\begingroup\$ "The requirement is to add, subtract, divide, multiply, or use other mathematical procedure, the number 9 to the current number to generate the next number" is (a) not anywhere that I can see in the text of the requirements; and (b) an non-observable requirement, as described in the link I posted of things to avoid when asking questions. \$\endgroup\$ – Peter Taylor Oct 11 '18 at 7:16
  • 1
    \$\begingroup\$ A requirement is only observable if you can verify it given a black box implementation, so I don't see how any code snippet can demonstrate that it is observable unless it's a test framework which verifies it by black-box testing. \$\endgroup\$ – Peter Taylor Oct 11 '18 at 7:30



Name: Two is an error, One runs fine!

The challenge is simple.

When one character is removed from the given program, it should not error, but when two are removed, it should error.


If you repeat one Unicode character in the program, then your score will be the number of bytes subtracted by the Unicode value of the character (0 for NUL, 10 for newline, 64 for A, etcetera).

Else, your score is the number of bytes.

As always, since this is code bowling, most bytes win!

  • 2
    \$\begingroup\$ What if I repeat two characters in the program? \$\endgroup\$ – user202729 Dec 1 '18 at 3:29
  • 4
    \$\begingroup\$ What if I just have a really large amount of NUL bytes? \$\endgroup\$ – Jo King Dec 1 '18 at 3:33
  • \$\begingroup\$ Is it ok if the program itself error/not error? \$\endgroup\$ – user202729 Dec 1 '18 at 3:35
  • \$\begingroup\$ What about infinite loop? \$\endgroup\$ – user202729 Dec 1 '18 at 3:35
  • 1
    \$\begingroup\$ This question needs major work: in its current state I would definitely vote to close it, and the only question would be whether to close as Too Broad or to close as Unclear. It's too broad because there's no specification for what the program must do. It's unclear because it's not specific enough on the quantifiers around the character removal: if it should be robust against the removal of any character, be explicit. See radiation-hardening for existing questions in this area, both for examples of how to word them and to ensure that it's different enough to be new and interesting. \$\endgroup\$ – Peter Taylor Dec 1 '18 at 10:42
  • \$\begingroup\$ @PeterTaylor Although the program can do anything, it should not be too broad if the challenge is sufficiently hard. \$\endgroup\$ – user202729 Dec 4 '18 at 10:30
  • \$\begingroup\$ About the removal of any character: I guess that the score is \$len-\sum_{c}{c\times \max(0,n(c)-1)}\$ for \$len\$ = program length in bytes and \$n(c)\$ = number of occurences of character c in program, but I'm not sure. \$\endgroup\$ – user202729 Dec 4 '18 at 10:32
  • \$\begingroup\$ LENGUAGE win!!! \$\endgroup\$ – l4m2 Dec 4 '18 at 11:32

Output a number \$n\$ such that:

  1. \$n\text{mod}10=5\$
  2. \$n^2\text{mod}10^{10000}=n\$

Shortest code win. You should be able to try it rather than purely know it work.

Sandbox mainly to check duplication

  • 1
    \$\begingroup\$ Wouldn't this be easy to just hardcode the number? \$\endgroup\$ – Jo King Dec 13 '18 at 13:22
  • \$\begingroup\$ @JoKing We must have \$n^2\ge 10^{10000}\$, so \$n\ge 10^{5000}\$ which if naively hardcoded takes \$5000 \log_2{10}\$ bits. \$\endgroup\$ – user202729 Dec 13 '18 at 14:24
  • \$\begingroup\$ However, we already have modular multiplicative inverse challenge, I expect most answers to be very similar. \$\endgroup\$ – user202729 Dec 13 '18 at 14:42
  • \$\begingroup\$ @user202729 It's likely that you'll get 1 in that way or be too slow so I need time requirement \$\endgroup\$ – l4m2 Dec 13 '18 at 15:00
  • \$\begingroup\$ @l4m2 Most solutions there use extended Euclid algorithm so they will not be too slow... \$\endgroup\$ – user202729 Dec 13 '18 at 15:06
  • \$\begingroup\$ @user202729 So they'll get 1 \$\endgroup\$ – l4m2 Dec 13 '18 at 15:22
  • \$\begingroup\$ Get 1 what? The correct answer is 810...90625. \$\endgroup\$ – user202729 Dec 13 '18 at 15:31
  • \$\begingroup\$ Will how many languages use this? \$\endgroup\$ – l4m2 Dec 13 '18 at 15:57

All numeric substrings

I like numbers. Really, really, like numbers. If you give me a string with numerals in it, I want to get all the numbers out of it that I can.


A string.


Every numeric substring, in any order, but only one of each. Numeric here means anything with Unicode General Category Nd (because I'm no xenophobe).


Any reasonable format. But languages that don't allow for multibyte-character I/O should use some numeric or other representation.

Test cases

(input → one ordering of the correct output)

  • 1212 → [1212, 121, 212, 12, 21, 1, 2]
  • 123٤٥6 ‪→ [1, 2, 3, ٤,‪ ٥, 6, 12, 23, 3٤,‪ ٤٥,‪ ٥6,‪ 123, 23٤,‪ 3٤٥,‪ ٤٥6,‪ 123٤,‪ 23٤٥,‪ 3٤٥6,‪ 123٤٥,‪ 23٤٥6,‪ 123٤٥6]‪
  • 12t45 → [1, 2, 4, 5, 12, 45]
  • abc → []
  • \$\begingroup\$ @JoKing, thanks, done. \$\endgroup\$ – msh210 Feb 27 at 5:35
  • \$\begingroup\$ I am not convinced by this challenge. To me, it essentially boils down to filtering a unicode string on a character-by-character level, followed by generating all substrings of non-split substrings of the original string. Is ‪٥6 supposed to have any semantic meaning or are those simply two unicode characters? \$\endgroup\$ – Jonathan Frech Mar 2 at 4:36

add two numbers in string representation


Given two strings representing non-negative integers in base 10, return the string corresponding to their sum - without any explicit arithmetic operations. This means you have to implement incrementing (probably with a lookup and indexing) and carrying (probably with iteration or recursion) on your own. Comparisons and boolean operations are allowed.


"1" + "1" = "2"
"5" + "6" = "11"
"0" + "8" = "8"


Write a function or program which takes the two strings in a way you want to.
Output, print or return the solution in whatever way you want.

Ah, and also don't forget that this is code-golf, so shortest answer in bytes will win. Also, all standard loophole rules and so on apply (you should know from all the other challenges!)


This challenge changed, evolved and got compressed during discussion with Adám starting from here (feel free to review the edits and chat of this post on how we got here)

Tags for cgcc post:

  • 9
    \$\begingroup\$ This is still "Do X without Y", and Y is not always clear-cut. What counts as an "explicit arithmetic operation" in lambda calculus? \$\endgroup\$ – Peter Taylor Jul 25 at 15:22
  • \$\begingroup\$ @PeterTaylor my english is not the best in the world and also i am not a pro in thins like loopholes or coding terminus around maths. you have any idea how to propose this or what kind of operations to prohibit? I would just come up with explicite "+" "-" "*" and "/" operations directly on the string representations (also to exklude languages which can handle interpreting strings as numbers). But are there furter operations I forget? \$\endgroup\$ – pixma140 Jul 26 at 5:43
  • 7
    \$\begingroup\$ I don't think it can be fixed. \$\endgroup\$ – Peter Taylor Jul 26 at 5:53
  • \$\begingroup\$ I agree this can't be defined objectively. The only way I can see this working is if the output was required to include the steps of calculation so that it's no longer an non-observable requirement. That would probably involve specifying a particular approach to implement though. I can't guess whether such a restriction would make the challenge interesting, but I suspect it would not. \$\endgroup\$ – trichoplax Jul 28 at 18:58
  • \$\begingroup\$ Guess then I will better not post this question outside of the sandbox.. But thanks to you all so far! :) \$\endgroup\$ – pixma140 Jul 29 at 5:41

Your task is to create a program that outputs a random pizza recipe following this one rule:

No random number choosers, you may have random text choosers. All standard code-golf rules apply. A sample output:

A simple PEPPARONI pizza sprinkled with fish and sausages. Your program must have the following items:

  • Anchovies
  • Fish
  • An adjective for the pizza

The program written with the shortest code wins.


The winner shall be picked on April 3rd, 12AM on the time zone GMT+3.

  • \$\begingroup\$ I already had an answer to the question, albeit non-competing: Python3 print("Have a plain MARGHERITA without any",["fish.","anchovies."][len(input("What's your favourite pizza? "))%2]) \$\endgroup\$ – mIllIbyte Mar 31 '16 at 12:41
  • 4
    \$\begingroup\$ Uh, this has a lot of problems with clarity. First, all "random text choosers" are implemented with "random number choosers" which makes this restriction feel a bit bizarre. Second, what counts as an adjective for pizza? And since this is code golf, people will always pick the shortest available. And third, what should an output look like? It's not clear from the spec. Also, sort of unrelated, but usually putting a time limit is unnecessary, even extremely popular challenges stop getting responses with any frequency after a month or so. \$\endgroup\$ – FryAmTheEggman Mar 31 '16 at 12:59
  • \$\begingroup\$ Did you misspell it on purpose? \$\endgroup\$ – noɥʇʎԀʎzɐɹƆ Mar 31 '16 at 13:55

Calculate Hello World!

Your goal is to calculate the simple string "hello world" or any other variant.


  • You may not use the characters in this set (inside your code): hHeElLoOwW rRdD!, in any form (character codes, hex codes, etc. not allowed) [only applies for direct use].
  • Your program may not take any input from any source.
  • Your program may only print hello world or any other variant to standard output (for your language). Again, it may not print anything else.
  • Standard loopholes apply (to clarify, they are not forbidden).
  • This challenge is underhanded.
  • Your program may not use any built-in string of printable characters (for example, string.printable in Python).
  • I recommend you be creative.

Remember, this is ! Have fun!

  • 3
    \$\begingroup\$ This is a trivial variant on stuff which has been done to death. It's also a Do X without Y question with obvious loopholes. \$\endgroup\$ – Peter Taylor Jun 12 '16 at 21:50
  • \$\begingroup\$ @Peter, I wrote this for creativity. I wanted to see the community's creative answers. \$\endgroup\$ – user36215 Jun 12 '16 at 21:56
  • \$\begingroup\$ This is not creative even remotely. I would even go as far as saying this is a duplicate of antoher challenge \$\endgroup\$ – Bálint Jun 12 '16 at 22:03
  • \$\begingroup\$ Underhanded contests are off topic by community consensus. \$\endgroup\$ – Dennis Jun 14 '16 at 3:19

Mad lads!

Inspired by the paper calculator episode of Numberphile.

Your challenge in this puzzle is to take in two two-bit (0-3) numbers and output the sum of the two numbers... using ordinary household objects.

Some possibilities of how this can be done:
music box (+ some helpers..)


input must always be involving two sets of two-bit integers, which can be represented by anything you like, so long as the cardinality of the representations is the same.


The output should be a single 3-bit integer which represents the addition of the two inputs.


  • your device cannot have the capability to connect to the internet in any way (sorry, this also disqualifies carrier pigeons). Your device must also not be able to perform this function alone (eg a calculator).
  • It must be somewhat original. put your own twist on it!
  • though, your entry can be alive (does your dog add??), so long as your entry is not in discomfort.
  • Pictures are required for each entry to show how it works. videos would be better, but aren't required!
  • The sole function of your machine does not have to be adding, it can do other things as well. This means that older projects that may serve a slightly different function are welcome, so long as they meet the rules stated above.
  • Your device can be as simple or as complex as you like, so long as it doesn't get to a point where it's completely esoteric.


You will be judged based on ease of use, ease of understanding, as well as originality! This means that entries should be easily explained, used, and be unique in some way.

This is a , so the most upvotes wins! good luck!

  • 2
    \$\begingroup\$ In my opinion, this is not a programming challenge. Once we start leaving the realm of a computer-based programming paradigm, a challenge becomes more difficult to test, replicate, and verify. Plus, something done with Dominoes, for example, may not "run" to completion 100% of the time, and in my opinion that makes it non-deterministic. \$\endgroup\$ – mbomb007 Sep 26 '16 at 18:43
  • \$\begingroup\$ Related meta: meta.codegolf.stackexchange.com/a/10151/34718. TLDR, if you want to program with dominoes, find or create a domino simulator where programs can be scored in bytes. Instead of marbles, use Marbelous. \$\endgroup\$ – mbomb007 Sep 26 '16 at 18:52
  • \$\begingroup\$ @mbomb007 what about papers, and counting dogs? This isn't a code golf, it's a popularity contest \$\endgroup\$ – user56309 Sep 26 '16 at 19:20
  • 2
    \$\begingroup\$ Popcons still require the use of programming languages. meta.codegolf.stackexchange.com/q/2028/34718. See both linked meta questions. What you are trying to do is off-topic for this site. \$\endgroup\$ – mbomb007 Sep 26 '16 at 19:42
  • \$\begingroup\$ @mbomb007 I'm not sure you linked the correct thing. I have found no reference of popularity contests in your recent link.. \$\endgroup\$ – user56309 Sep 26 '16 at 19:44
  • \$\begingroup\$ Rules and meta consensus apply to all challenges, not just code-golf. \$\endgroup\$ – mbomb007 Sep 26 '16 at 20:21
  • \$\begingroup\$ Popcons should be held to a higher standard than other questions, not a lower one as your comments imply. \$\endgroup\$ – Peter Taylor Sep 27 '16 at 7:33

What about one question on numeric solve?

Write one function that gets as one argument one function f(x), and one interval a..b and return the list of all element v such f(v)=0 in the interval a..b. In the interval a..b the f must be definite and can not be f(r) = +oo for r in a..b.

Win the one write the function with biggest set of right results. If two have the same set, win the one has less characters. You can not use solve() or nsolve() or fsolve() or one already written function that your sys offer that finds numerical x in f(x)=0

  • 2
    \$\begingroup\$ Finding all zeros of an arbitrary function is impossible unless the domain is restricted. \$\endgroup\$ – Mego Nov 29 '16 at 8:59
  • \$\begingroup\$ Ok you are right \$\endgroup\$ – RosLuP Nov 30 '16 at 10:04
  • 3
    \$\begingroup\$ The edit doesn't do anything to fix the problem. \$\endgroup\$ – Peter Taylor Nov 30 '16 at 14:48
  • 3
    \$\begingroup\$ The bigger problem is that this post is incomprehensible. \$\endgroup\$ – Mego Dec 2 '16 at 8:54

Beep. Boop. Maggot?

  1. Read input from STDIN until enter is pressed.
  2. If the input is "Beep", continue.
  3. Otherwise, print "Wrong!" and exit.
  4. Repeat steps one to three with "Boop" instead.
  5. Execute step one.
  6. If the input is "Maggot", output "Done".
    • Otherwise, output "Wrong.".

Remove punctuation (?.!'"), ignore capitalization (a-zA-Z only), and strip whitespace (\t and )

Notes: You must print the text word-for-word, character-for-character. Step 3 is Wrong!, while Step 6 is Wrong.


  • Notice how boop is just beep with the o's turned into e's.
  • There is lots of repetition here, but with many caveats.
  • \$\begingroup\$ Technically speaking, step 4 should repeat steps 1-3, shouldn't it? Anyway, apart from that, I don't see anything technically wrong with the challenge, but I'm not sure it's a very good challenge. \$\endgroup\$ – user62131 Jan 1 '17 at 0:07

Letter Grade Challenge

Create a program that allows the user to input an int between 1 and 100, then grades that number based on standard US letter grades, printing the grade character as a result. Please use Java for this challenge, and like usual code golf challenges, the smallest answer (bytes) wins. For example, if input is 90, then you display A.

  • 6
    \$\begingroup\$ Welcome to PPCG and thank you for sandboxing. Please include the exact cut-off points. Is the input an integer or a floating point? Are the extremes included or excluded. We generally frown on language-specific challenges. Do you have any particular reason for restricting answers to Java? \$\endgroup\$ – Adám Feb 28 '18 at 23:11
  • \$\begingroup\$ Don't restrict which languages you can use. All it does is keep people who don't know Java from answering your past. Also, you should include the definition of the letter grade scale in your challenge, rather than along readers to look it up. \$\endgroup\$ – Pavel Feb 28 '18 at 23:11
  • \$\begingroup\$ You don't need to include the clause about multiple files. At PPCG, we include all necessary code in the byte-count. \$\endgroup\$ – Adám Feb 28 '18 at 23:13
  • 2
    \$\begingroup\$ What are "standard US letter grades"? \$\endgroup\$ – Shaggy Feb 28 '18 at 23:25
  • \$\begingroup\$ 90-100: A; 89-80: B; 79-70: C; 69-60: D; 59-0: F \$\endgroup\$ – OCDkirby Mar 1 '18 at 0:02
  • \$\begingroup\$ @Pavel Sorry about that. I saw a few people posting python only challenges a while back, so I assumed specific languages are the norm. \$\endgroup\$ – OCDkirby Mar 1 '18 at 0:03
  • 1
    \$\begingroup\$ @OCDkirby >_> Because people did that more often "A while back" doesn't mean it's still the norm, just look at the questions on the main page \$\endgroup\$ – ASCII-only Mar 1 '18 at 0:28
  • \$\begingroup\$ That's several years back. What was on-topic several years back can be off-topic now. Remember to see the timestamp. /// Stack Overflow has the same problem: see this (first revision). Now the title is not valid. \$\endgroup\$ – user202729 Mar 1 '18 at 3:51
  • \$\begingroup\$ Please edit necessary information into the post. / Some example I/O please? \$\endgroup\$ – user202729 Mar 1 '18 at 3:51
  • 1
    \$\begingroup\$ Probable dupe \$\endgroup\$ – Jo King Mar 1 '18 at 5:21
  • \$\begingroup\$ @JoKing They use different letter grades. There is no 'E' in this grading system, and the number value requirements are different. \$\endgroup\$ – OCDkirby Mar 1 '18 at 16:05
  • \$\begingroup\$ @OCDkirby But still, if the algorthm on the other question can be adapted for this question with small modification, it's considered a dupe. \$\endgroup\$ – user202729 Mar 2 '18 at 7:22
  • \$\begingroup\$ @user202729 Is editing every condition in an if statement and removing one condition considered a "small modification"? \$\endgroup\$ – OCDkirby Mar 2 '18 at 14:37

Shortest Possible 240 Sided Die Program: Using No Constant Greater than 6

Have you ever played Yahtzee with a 240-sided die? No, probably not. Anyway, I came up with the idea of a 240-sided die program, but to make it hard, you cannot use a constant with an absolute value greater than 6. For example, randInt(1,240) wouldn't work. The chances of any number 1-240 must be completely equal, and using expressions that represent numbers with an absolute value larger than 240 is not allowed. For example, randInt(1,4*6*2*5) is against the rules, since 4*6*2*5 evaluates to 240. Standard loopholes prohibited, and you're code golfing.

  • \$\begingroup\$ Comments are not for extended discussion; this conversation has been moved to chat. \$\endgroup\$ – DJMcMayhem Apr 27 '18 at 20:19

Merge two code in two languages into a polyglot.

E.g. If you choose C & Python 3, you can merge





#define print(x) main(){puts("a");}

(for it's hard to have a score on language difficulty, optimizy, etc.)

  • 2
    \$\begingroup\$ This is way too broad as it is currently written. "Do X Creatively" is out of scope, even for popularity-contests. \$\endgroup\$ – AdmBorkBork May 17 '18 at 18:04
  • \$\begingroup\$ @AdmBorkBork It seems not a creatively challenge? though I don't vote it that high either \$\endgroup\$ – l4m2 May 17 '18 at 18:20

I recently made a language called bit, and your challenge is to create a valid program that takes 2 numbers from STDIN, and outputs the sum of them. You may assume the numbers are no more than 5 digits, and your output doesn't need to be more than 5 digits long

Bit Specification

You can find the specification and an interpreter at the GitHub repo

  • \$\begingroup\$ Do you have a reference interpreter or compiler? How can we test a solution? \$\endgroup\$ – qwr Sep 7 '18 at 20:57
  • \$\begingroup\$ @qwr I do, in Java, should I add it to the question? \$\endgroup\$ – FireCubez Sep 7 '18 at 21:01
  • \$\begingroup\$ Yes it's very helpful \$\endgroup\$ – qwr Sep 7 '18 at 22:06
  • \$\begingroup\$ @qwr Actually how am I going to do that, the file isn't online anywhere \$\endgroup\$ – FireCubez Sep 7 '18 at 22:11
  • \$\begingroup\$ You may just paste the java code in your question, or even better link a TIO script (tio.run/#java-openjdk) so people can run it online \$\endgroup\$ – qwr Sep 9 '18 at 5:32
  • \$\begingroup\$ @qwr It's much more than 1k lines of code, and multiple classes, however I have a GitHub now, added to question \$\endgroup\$ – FireCubez Sep 9 '18 at 15:31
  • \$\begingroup\$ Ok that suggests to me the problem may be too long. Others may feel differently \$\endgroup\$ – qwr Sep 9 '18 at 19:18
  • \$\begingroup\$ @qwr Not really, Java code tends to be long, there's no problem in that \$\endgroup\$ – FireCubez Sep 10 '18 at 18:19
  • 1
    \$\begingroup\$ Well the meta here is for challenges that don't feel arbitrary, and to me this is leaning towards an arbitrary list of commands for your own personal language. \$\endgroup\$ – qwr Sep 10 '18 at 20:57
  • \$\begingroup\$ @qwr So you think the idea is bad? \$\endgroup\$ – FireCubez Sep 10 '18 at 21:49
  • \$\begingroup\$ I wouldn't call it bad, which is a pretty broad term, but challenges that are easy to understand and conceptualize are generally better received and get more responses (if that is what you want) \$\endgroup\$ – qwr Sep 11 '18 at 20:09
  • \$\begingroup\$ Unrelated: Github is generally for hosting source code and packages/binaries like .jar (these can be included in releases) \$\endgroup\$ – qwr Sep 11 '18 at 20:11
  • 2
    \$\begingroup\$ If you posted this it would likely get closed as a dupe of Add two numbers. Instead of posting this, I'd recommend just submitting solutions in Bit yourself and seeing if anyone else is interested \$\endgroup\$ – Jo King Sep 13 '18 at 8:02

Make a search engine!


You are now the first employee of DuckDuckGoogle, a company founded by a Google employee and a DuckDuckGo employee! They have a new vision for search engine! But obviously, they need to make a search engine first! However, they are bad programmers (nobody knows how they were even hired at DuckDuckGo and Google!). So you are assigned the task of making a search engine.

Search engines

There are three parts to a search engine, a web crawler, an indexer, and a searcher.

The web crawler takes a link, and saves the page and stores the page data (the HTML code). It then looks for links in the page and visits those webpages and does the same. It will continue to do this until there are no more links left.

The web indexer will take the text from each page, take each word, and add it to a dictionary of words and the pages it is associated with. If the word is already in the dictionary, it adds the page as a value of that word that is found in the page. For example, lets say www.example.com/index.html contains the text "hello. thanks! goodbye." and the ww.example.com/index.html is linked to www.example.com/hello.html with the. text "hello. goodbye." The crawler would extract the text from the index.html, and find hello.html, and extract the text from hello.html. The indexer would make a dictionary like this:

dictionary ={"hello.": ["www.example.com/index.html","ww.example.com/hello.html"], "goodbye.":["www.example.com/index.html","ww.example.com/hello.html"], "thanks!": ["ww.example.com/index.html"]}

The simplest part of the search engine is the searcher, or retriever. It simply retrieves the value for the search term (i.e. the list of pages the search term is found in) and prints it. That is the final result of the program. So if the search term is "hello.", the program will print ["www.example.com/index.html","ww.example.com/hello.html"]

Now, here is the difficult part. You must take into account punctuation. So "hello" returns the same as "hello." Also the search engine should be case-insensitive. So "Hello" is the same as "hello", which, as we said, is the same as "hello." which was ["www.example.com/index.html","ww.example.com/hello.html"]


The challenge is to write a search engine in the least number of bytes as possible. Why? Because your bosses have decided to use 90% of the one hard drive they have (budget problems!) for the Holy Grail part of their project and you only get 10%.


  1. The input is the "seed", a url at which the crawler should start at, and also the search term.
  2. The output is a list of webpage urls where the search term is found.
  3. The program cannot use builtins for a search engine or even a crawler (or related, like a scraper or spider library).
  4. No need to worry about Javascript at all. Assume that the pages will not have Javascript.
  5. The webpages are assumed to have HTML 4.0.1 Strict.


I am pretty sure people know how search engines work. So I will only include two testcases. You can use the websites in the testcases for testing purposes as well.

> "https://www.udacity.com/cs101x/index.html" "crawl"

> "https://www.udacity.com/cs101x/urank/index.html" "hummus"
  • 3
    \$\begingroup\$ The first bonus doesn't make sense, as the terms localhost and @PHASE COME BACK WE ARE YOUR FRIEEEEENDS, just themselves, are 49 bytes. The language would need to do string-delimiter/comparison/output all in one character. ... Separately, how many iterations does the search need to travel? Meaning, if index1.html has a link to index2.html which has a link to index3.html which ... has a link to indexN.html, what's the limit on N? \$\endgroup\$ – AdmBorkBork Jan 13 '16 at 13:59
  • 2
    \$\begingroup\$ 1. I don't even understand what the second bonus is trying to say. 2. What syntax should we assume? Do we need to handle tag soup, or can we refuse to index pages which aren't valid XHTML? Do we need to support JS execution which affects the page content, web components, etc.? \$\endgroup\$ – Peter Taylor Jan 13 '16 at 14:30
  • \$\begingroup\$ What counts as "visible text"? If there is white text on a white background, is that considered invisible? If there is another element stacked on top of the text, is that invisible? What if it is only visible on odd days of the month (because of some JavaScript)? If I have to scroll inside of a scroll pane in order to see it, is that considered visible? \$\endgroup\$ – Rainbolt Jan 13 '16 at 14:39
  • \$\begingroup\$ Can we assume that all links on the page will be valid links? If not, how should we handle errors like HTTP 404 (Not Found)? \$\endgroup\$ – Rainbolt Jan 13 '16 at 14:44
  • \$\begingroup\$ @Rainbolt all links are assumed to be valid. \$\endgroup\$ – TanMath Jan 13 '16 at 20:12
  • \$\begingroup\$ @TimmyD I didn't take "localhost" into account and now the bonus will be -75 bytes. Also, do you really think a limit on N is needed? \$\endgroup\$ – TanMath Jan 13 '16 at 20:15
  • \$\begingroup\$ @PeterTaylor syntax will be regular HTML.No need to handle JS. What I am saying in thr second bonus is that you would need to build a search engine that only puts text within the paragraph element (i.e. no tags will be counted as words) in the index. Also, other tags like <b> cannot be counted as words although it is part of the paragraph element. \$\endgroup\$ – TanMath Jan 13 '16 at 20:17
  • \$\begingroup\$ @Rainbolt visible text, for the sake of simplicity will be anything in the paragraph element. \$\endgroup\$ – TanMath Jan 13 '16 at 20:18
  • \$\begingroup\$ So only text in <p> elements should be counted? Text in titles etc should be ignored? (And what is "regular" HTML?) \$\endgroup\$ – Peter Taylor Jan 13 '16 at 20:24
  • \$\begingroup\$ @PeterTaylor HTML 4 will be "regular" HTML (since HTML5 has to still work dominating the world!) although thst reslly wouldn't affect the crawling that much. The paragraph, preformatted text, and header will be counted as visible text. \$\endgroup\$ – TanMath Jan 13 '16 at 20:32
  • \$\begingroup\$ "HTML 4" still isn't very precise. Can answers require input to be conforming HTML 4.01 Strict? \$\endgroup\$ – Peter Taylor Jan 13 '16 at 23:31
  • \$\begingroup\$ @PeterTaylor ok. \$\endgroup\$ – TanMath Jan 13 '16 at 23:31
  • \$\begingroup\$ This sandbox post has had little activity in a while and little positive reception from the community. Please improve / edit it or delete it to help us clean up the sandbox. \$\endgroup\$ – programmer5000 Jun 9 '17 at 14:13

Smallest code to import in G++

Given some head files that need to import, return the shortest code to do so.

  1. You are allowed to access include/
  2. You should consider both #include <xxx> and #include "xxx"(used in e.g. backward/hash_set #include "backward_warning.h"), but not #import (std don't use #import)

Sample input ['string']

Sample output #import<map>


  1. What more assumption necessary? (#if don't effect imported heads?)
  2. Time limit necessary?

  • 10
    \$\begingroup\$ I don't understand what is the challenge. \$\endgroup\$ – user202729 Apr 21 '18 at 16:32
  • \$\begingroup\$ I don't think tips questions have to go through the sandbox \$\endgroup\$ – Jo King Apr 24 '18 at 2:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .