569
\$\begingroup\$

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

Sandbox FAQ

Posting

To post to the sandbox, scroll to the bottom of this page 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, though you can optionally add a title at the top. 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, and replace the post here with a link to the challenge and delete the sandbox post.

Discussion

The purpose of the sandbox is to give and receive feedback on posts. If you want to, feel free to give feedback to any posts you see here. Important things to comment about can include:

  • Parts of the challenge you found unclear
  • Comments addressing specific points mentioned in the proposal
  • Problems that could make the challenge uninteresting or unfit for the site

You don't need any qualifications to review sandbox posts. The target audience of most of these challenges is code golfers like you, so anything you find unclear will probably be unclear to others.

If you think one of your posts requires more feedback, but it's been ignored, you can ask for feedback in The Nineteenth Byte. It's not only allowed, but highly recommended! Be patient and try not to nag people though, you might have to ask multiple times.

It is recommended to leave your posts in the sandbox for at least several days, and until it receives upvotes and any feedback has been addressed.

Other

Search the sandbox / Browse your pending proposals

The sandbox works best if you sort posts by active.

To add an inline tag to a proposal, use shortcut link syntax with a prefix: [tag:king-of-the-hill]. To search for posts with a certain tag, include the name in quotes: "king-of-the-hill".

\$\endgroup\$
0

4561 Answers 4561

1
42 43
44
45 46
153
2
\$\begingroup\$

Write a (simplified) BitCycle Interpreter

\$\endgroup\$
2
\$\begingroup\$

Convert Alpha-2 to Alpha-3

\$\endgroup\$
1
  • \$\begingroup\$ I liked the back story, personally. \$\endgroup\$
    – Qaziquza
    May 13, 2022 at 16:49
2
\$\begingroup\$

There's more than one way to skin a set

\$\endgroup\$
5
  • \$\begingroup\$ You may want to clarify that when summing the subset, one may take a number only once and that the order doesn't matter. Also subjective suggestion: allow only inputs of length >1 (or even >2). \$\endgroup\$
    – pajonk
    Apr 9, 2022 at 19:35
  • \$\begingroup\$ Description could be clearer, possibly something like "given a set S of integers, output all the integers that are the sum of multiple subsets of S" would be less wordy and clearer, also outputting a "set" is probably not necessary, as I feel that whitespace delimited strings or simple lists would work, especially since not all langs have a specific concept of a set \$\endgroup\$
    – des54321
    Apr 11, 2022 at 16:48
  • \$\begingroup\$ also possibly add a few comments onto the test cases to explain them a bit more, eg. on test case 3 adding a comment like "21 can be 10+11 or 9+12" \$\endgroup\$
    – des54321
    Apr 11, 2022 at 16:51
  • \$\begingroup\$ @des54321 It's pretty standard that "outputting a set" doesn't literally mean a builtin set type, it just means some kind of list-y thing \$\endgroup\$
    – pxeger
    Apr 11, 2022 at 16:55
  • \$\begingroup\$ @pxeger, fair enough, although you may want to explicitly specify strings with just whitespace separators if you want to allow that as output, as especially with the current format of your testcases that does feel slightly like its not allowed \$\endgroup\$
    – des54321
    Apr 11, 2022 at 16:57
2
\$\begingroup\$

I want 8 bits for every character!

\$\endgroup\$
2
\$\begingroup\$

Convert Klingon romanization to pIqaD


Context

Klingon is a constructed language from Star Trek. It has two writing systems: a not-very-good Latin alphabet (with case distinctions, I being different from l, ...) and its own script, called pIqaD.

Task

Convert the bad[disputed - discuss] Klingon romanization into pIqaD. Here's a CSV (the pIqaD [or, if you don't have a font for it, boxes or nothing] is in the second column and the Unicode hexadecimal codes are in the third):

a,,f8d0
b,,f8d1
ch,,f8d2
D,,f8d3
e,,f8d4
gh,,f8d5
H,,f8d6
I,,f8d7
j,,f8d8
l,,f8d9
m,,f8da
n,,f8db
ng,,f8dc
o,,f8dd
p,,f8de
q,,f8df
Q,,f8e0
r,,f8e1
S,,f8e2
t,,f8e3
tlh,,f8e4
u,,f8e5
v,,f8e6
w,,f8e7
y,,f8e8
',,f8e9

Be careful not to mix up q and Q, they are different letters in Klingon!

Input and output

Strings! or your language's equivalent. You can assume that the input contains no characters not in Klingon (incl. miscapitalized dhis) or numbers or punctuation.

Scoring

Lowest byte count wins, as always.


suggestions? :)

\$\endgroup\$
3
  • \$\begingroup\$ I like it! It seems ready for publication. \$\endgroup\$
    – Qaziquza
    May 25, 2022 at 21:34
  • 1
    \$\begingroup\$ My browser shows only in the second column of the csv. Maybe add a link to TIO or other external page, which will render it correctly. If possible, you may also add UTF codes for those characters. \$\endgroup\$
    – pajonk
    May 26, 2022 at 10:02
  • \$\begingroup\$ @pajonk i added the unicode codes :) \$\endgroup\$
    – matt
    May 29, 2022 at 14:28
2
\$\begingroup\$

Generate Fibonacci Primes Quickly

Unsurprisingly, fibonacci primes are primes that are also Fibonacci numbers. There are currently 34 known Fibonacci primes and an additional 15 probable Fibonacci primes. For the purpose of this challenge, the Fibonacci numbers are the sequence \$F_n\$ defined as \$F_1 = 1\$, \$F_2 = 1\$, and \$F_n = F_{n-1} + F_{n-2}\$, and a number is considered prime if it passes a probabilistic prime test with a probability of being incorrect of less than \$2^{-32}\$. For example, since a \$k\$ round Miller-Rabin test has an error probability of \$4^{-k}\$, a 16 round Miller-Rabin test is sufficient to prove primality for the purpose of this challenge.

Submissions:

The goal of this challenge is to write a full program that calculates every Fibonacci prime and its index in the Fibonacci series as fast as possible.

Submissions shall be a full program, complete with instructions for building and running it. Submissions must be in a language freely available for noncommercial use and capable of running on Windows 10, and users must be prepared to provide installation instructions for that language. External libraries are permitted, with the same caveats that apply to languages.

Primes will be output by writing to stdout with a simple binary format, that has a little-endian byte order:

[8 bytes- index into the Fibonacci series]
[8 bytes- length of the Fibonacci prime, in bytes]
[? bytes- the Fibonacci prime, as a byte array]

Scoring

The programs will be run on an Intel(R) Core(TM) i5-8365U CPU with 8 threads, avx-2 support, and 24 Gigabytes of ram. The largest prime that can be correctly reached in one minute wins. Tiebreaker is the time taken to reach the largest value. Programs that tamper with my computer or the testing program will be disqualified. Programs that error or otherwise fail to produce the correct output will be judged based on the furthest Fibonacci prime reached before they failed.

see also: A005478, A001605

The test program can be found here. Additionally, there is an example program here.

Meta

The test program is now completed and posted, but I still have a little documentation to write. I chose the output format to be simple, and so that answers wouldn't have to worry about formatting integers quickly. Is there anything I need to improve clarity-wise?

tags:

\$\endgroup\$
4
  • \$\begingroup\$ Since there are only 34 (?+15) of them, how will you stop a program from hard-coding these, and then starting looking for larger ones from the last of them onwards? \$\endgroup\$ May 22, 2022 at 10:02
  • \$\begingroup\$ @DominicvanEssen tweaked the question to use "calculate" instead of "list", which has worked for other challenges in the past. I also posted the controller. \$\endgroup\$
    – Aiden4
    May 30, 2022 at 5:30
  • \$\begingroup\$ How is the "error bound" of a "probable prime" defined? \$\endgroup\$
    – pxeger
    May 30, 2022 at 15:07
  • \$\begingroup\$ @pxeger I hopefully clarified what I meant, by error bound I meant error probability. \$\endgroup\$
    – Aiden4
    May 30, 2022 at 17:01
2
\$\begingroup\$

Fill the rectangle

\$\endgroup\$
2
\$\begingroup\$

`lol` is an ambigram, `dad` isn't

\$\endgroup\$
3
  • 1
    \$\begingroup\$ I think you mean "rotated", not "reversed". Related, Related, but not a dupe of either. \$\endgroup\$ May 30, 2022 at 5:20
  • 2
    \$\begingroup\$ I think using the word "palindrome" is misleading here. Palindrome is specifically for reversing right-to-left, not rotating. Also, please specify what kind of rotation is required (180 deg around the center of the word, isn't it?) and add some longer test-cases with various length. Please also specify what to do with empty string. Suggestion: make this decision-problem, not a "filter a list", because now it requires some needless boring boilerplate code. \$\endgroup\$
    – pajonk
    May 30, 2022 at 10:08
  • \$\begingroup\$ I've edited this down to a stub now that it's been posted to save space \$\endgroup\$ Jun 4, 2022 at 2:50
2
\$\begingroup\$

How much more to a repdigit?

\$\endgroup\$
1
2
\$\begingroup\$
\$\endgroup\$
0
2
\$\begingroup\$

Enumerate all pure sets

\$\endgroup\$
2
  • 1
    \$\begingroup\$ sequence IO? \$\endgroup\$
    – pxeger
    Jun 12, 2022 at 9:05
  • \$\begingroup\$ @pxeger Good idea :P \$\endgroup\$
    – emanresu A
    Jun 12, 2022 at 9:13
2
\$\begingroup\$

Is it a heapable sequence?

\$\endgroup\$
2
\$\begingroup\$

Find the walls!

\$\endgroup\$
2
\$\begingroup\$

Interpret BigTalk

Talk is a language which takes a single bit of input and has four commands:

  • 00 If the accumulator is 0, set the accumulator to 0.
  • 01 If the accumulator is 0, set the accumulator to 1.
  • 10 If the accumulator is 1, set the accumulator to 0.
  • 11 If the accumulator is 1, set the accumulator to 1.

These can be interpreted as replacement commands. We're going to extend that concept to positive integers, and make the language more complicated.

The language we're going to be defining is called BigTalk. It has an accumulator, which is a list of positive integers, initially set to only the input.

Programs are a series of commands. Each command is a pair of lists of integers, like ([24, 2], [32, 1]), and means to replace the first as a sequence with the second, as many times as it occurs.

The program runs repeatedly until the accumulator does not change. Finally, the accumulator is output.

For example, with the input [5, 5, 5, 5] and the program ([5, 5], [3, 2, 1]), ([3], [5]), ([2, 1, 5], [5, 1, 2]), the list goes:

[5, 5, 5, 5]
[3, 2, 1, 3, 2, 1]
[5, 2, 1, 5, 2, 1]
[5, 5, 1, 2, 2, 1]
[3, 2, 1, 1, 2, 2, 1]
[5, 2, 1, 1, 2, 2, 1]

Your challenge is to interpret this language. You may take input and program in any reasonable format.

This is , shortest wins!

Testcases

In the format of input, commands.

[5, 5, 5, 5], ([5, 5], [3, 2, 1]), ([3], [5]), ([2, 1, 5], [5, 1, 2]) -> [5, 2, 1, 1, 2, 2, 1]
[4], ([4], [4, 4]) -> Infinite loop
[2, 19, 13], ([13, 19], [2]) -> [2, 19, 13]
[39, 1, 23], ([1], [39, 23]), ([39, 39], [1, 1]), ([23, 23], [1]) -> [39, 23, 39, 23, 39, 23]

This language may be Turing-complete, and I have a +50 bounty for someone who proves it either way.

\$\endgroup\$
0
2
\$\begingroup\$

How far from binary?

\$\endgroup\$
3
  • \$\begingroup\$ Your description doesn't quite match your test cases. It should probably say that the absolute value of n-m is composed only of 1s and 0s. Since negative numbers have -. \$\endgroup\$
    – Wheat Wizard Mod
    Jun 15, 2022 at 8:40
  • \$\begingroup\$ @WheatWizard Why is it necessary? -101 is a signed binary. \$\endgroup\$
    – Fatalize
    Jun 15, 2022 at 8:46
  • 1
    \$\begingroup\$ -101 is not a binary string. It might be reasonable to interpret the intended way, but I certainly think it's more reasonable to interpret it another way. I don't see any harm in being explicit. \$\endgroup\$
    – Wheat Wizard Mod
    Jun 15, 2022 at 8:48
2
\$\begingroup\$

Parse this handy graph format

There's a great number of ways to represent directed graphs like the following: Three examples of directed graphs

Most representations are tailored towards being easy to work with, either for humans (like the picture above) or for computers (like an adjacency matrix representation). A middle ground I found useful in the past is this format:

        A -> B <-> C                A -> B -> C -> A           A -> C -> D; B <-> C <-> E

It is basically a condensed edge list, which is still relatively close to a graphical representation (good for humans) but not too hard to parse for a computer.

The goal in this challenge is to take a string representing a graph in this format as input and output a list of the graph's nodes and a list of the graph's edges.

This is , so try to use as few bytes as possible in the language of your choice.

Input specification

  • Each node has a unique name consisting of alphabetical letters, for example A, b, or Node. It is also fine if you only support upper or lower case names.
  • Three types of arrows can appear: ->, <-, and <->.
  • A chain is formed by a sequence starting with node and then alternating between arrows and nodes, for example A -> B <- C or also just A.
  • A chain may be followed by another chain with ; as a separator in between.
  • Between node names and the arrows and the semicolon can be any number of spaces (including zero).
  • Self-loops are possible, i.e., A -> A describes an arrow from node A to itself.
  • You may assume the input string is a valid encoding of a graph.

Output specification

  • The list of nodes can be returned or printed in any reasonable format and order, e.g., A, B, C, ["A", "B", "C"], A\nB\nC, ...
  • Edges are represented as ordered tuples in any reasonable format, e.g., ("A", "B") or A B for the edge A -> B and ("D", "C") or D C for the edge C <- D.
  • The list of directed edges can again be output in any reasonable format.

Test cases

"A -> B <-> C"               : ["A", "B", "C"], [("A", "B"), ("B", "C"), ("C", "B")]
"A -> B -> C -> A"           : ["A", "B", "C"], [("A", "B"), ("B", "C"), ("C", "A")]
"A -> C -> D; B <-> C <-> E" : ["A", "B", "C", "D", "E"], [("A", "C"), ("C", "D"), ("B", "C"), ("C", "B"), ("C", "E"), ("E", "C")]
"AA<->BB"                    : ["AA", "BB"], [("AA", "BB"), ("BB", "AA")]
"A;B"                        : ["A", "B"], []
" "                          : [], []
"   A   <- B  ;  C  "        : ["A", "B", "C"], [("B", "A")]
"A -> A; B <- B"             : ["A", "B"], [("A", "A"), ("B", "B")]

Sandbox question:

Given that this is foremost a question, I'm tempted to drop the validity assumption and require answers to raise an error if the input does not follow the spec. What do you think, would that still be fun?

\$\endgroup\$
2
  • \$\begingroup\$ Definitely don't require validity. That makes the challenge two quite different challenges, and is in no way necessary. \$\endgroup\$
    – emanresu A
    Jun 27, 2022 at 1:00
  • 1
    \$\begingroup\$ ^ probably a typo, but 100% you should allow users to assume validity. Don't require validity checking. \$\endgroup\$ Jun 30, 2022 at 2:06
2
\$\begingroup\$

Flood fill by distance

\$\endgroup\$
2
  • 1
    \$\begingroup\$ I suggest using a different character than O for obstacles, because it looks too much like 0. Maybe #? \$\endgroup\$
    – pxeger
    Jun 20, 2022 at 12:52
  • 1
    \$\begingroup\$ In your third code block, the last two grids still use O intead of X in two places each. \$\endgroup\$
    – naffetS
    Jun 25, 2022 at 21:24
2
\$\begingroup\$

Nest some addition

  • There's a natural follow-up with the other possible addition operator, where the order of application is reversed, i.e. \$\operatorname{add2}\overparen{\underparen a}\overparen{\underparen b} f=\left(\overparen{\underparen b} f\right)\circ\left(\overparen{\underparen a} f\right)\$.
\$\endgroup\$
10
  • \$\begingroup\$ Even though I've dabbled in similar contexts before, I would have been helped by a reminder to think of everything in terms of functions which act on functions. \$\endgroup\$
    – aschepler
    Jun 20, 2022 at 21:05
  • \$\begingroup\$ It looks like the multiplication and exponentiation rules are part of the "Task", but if I understand right they're really an additional comment on add or a hint which could be useful for understanding / implementing / verifying behavior. \$\endgroup\$
    – aschepler
    Jun 20, 2022 at 21:14
  • 1
    \$\begingroup\$ @thejonymyster add is binary, since it expects two curried arguments. \$\endgroup\$
    – att
    Jun 20, 2022 at 22:14
  • 1
    \$\begingroup\$ May I take input as \$x_0,\dots,x_a\$ without taking the integer \$a\$? \$\endgroup\$
    – alephalpha
    Jun 23, 2022 at 11:45
  • \$\begingroup\$ @alephalpha that should be allowed by default \$\endgroup\$
    – att
    Jun 23, 2022 at 18:21
  • \$\begingroup\$ I think the \$ \mathsf {formatting} \$ might be clearer if you denoted "Church numeral of \$ n \$" as something like \$ [n] \$. Because at the moment, it's not entirely clear that \$ \mathsf {a^b} \$ means \$ [a^b] \$ and not \$ [a]^{[b]} \$ (which doesn't make any sense) \$\endgroup\$
    – pxeger
    Jun 27, 2022 at 7:21
  • \$\begingroup\$ @pxeger What do you think about \$\overparen{\underparen n}\$ / \$\overparen{\underparen{a^b}}\$ (or maybe only over)? I feel like braces add a bit too much clutter. \$\endgroup\$
    – att
    Jun 27, 2022 at 19:36
  • \$\begingroup\$ @att Sure, both work fine \$\endgroup\$
    – pxeger
    Jun 27, 2022 at 19:38
  • \$\begingroup\$ @thejonymyster I think "where ∘ denotes function composition" should be sufficient (it's also defined as the multiplication rule) \$\endgroup\$
    – att
    Jun 27, 2022 at 22:22
  • \$\begingroup\$ Oh, i skimmed right over that. I guess my friend just can't read :P \$\endgroup\$ Jun 27, 2022 at 22:35
2
\$\begingroup\$

Is this a squashed series?

Given a string of digits, determine whether it is the concatenation of at least two ascending consecutive integers. (in decimal, with no leading zeroes)

For example, the string 7891011 is valid, because it's the concatenation of the sequence [7, 8, 9, 10, 11].

However, the string 54 could only be formed by concatenating [5, 4] (which is not ascending), or [54] (which does not have at least two numbers in it), so it is not valid.

(This challenge is essentially asking "Is it a valid input to Decipher a squashed series")

You should output using two distinct values of your choice to represent "valid" and "not valid".

Take care with leading zeroes: for example, 809 is not valid, even though it could be decomposed into [8, 09], because 09 is not a valid decimal integer.

You may assume the input does not start with a 0, and has a length of at least 2. The input will also only contain digits (and not -, so you don't need to handle negative numbers).

This is , so the shortest code in bytes wins.

Test cases

Valid

1234
7891011
293031323334
9991000

Invalid

54
66
28
3131
809

Valid numbers are given by A035333 in the OEIS.

Meta

  • Is this interesting enough? (It was just a byproduct of Decipher a squashed series)
  • Is my handling of the 809 case good? Or should I allow either output for inputs like that?
\$\endgroup\$
2
  • 2
    \$\begingroup\$ In Brachylog, this would be the exact same answer as your previous challenge, but I guess it’s mostly because of the declarative nature of the language. I don’t know if that’s interesting enough compared to the othe challenge with other language paradigms. \$\endgroup\$
    – Fatalize
    Jun 28, 2022 at 13:58
  • \$\begingroup\$ Fwiw, in 05AB1E it isn't the exact same answer, but it's a pretty trivial change. My initial answer was .œ.Δ¥P; and it would be .œʒ¥P}g without the 809 test case or .œʒ¥P}ïJQO with the 809 test case (both outputting 2/1 for truthy/falsey respectively). So the 8,09 test case definitely adds something interesting, although 05AB1E's "09"==9 being truthy makes it a bit more tricky than in most other languages I'd imagine. \$\endgroup\$ Jul 8, 2022 at 14:21
2
\$\begingroup\$

Is it shuffled FizzBuzz?

\$\endgroup\$
2
\$\begingroup\$

Decompress a Sparse Matrix (WIP)

The dual of this challenge.

Decompress a sparse matrix reversing the method here Compressed sparse row (CSR, CRS or Yale format).

There will be 4 inputs, either as separate variables or as a list of lists:

  • V, a list of the nonzero elements of the matrix in row-major form. This is of length NNZ (the number of nonzero elements in the original matrix)
  • NCOLS - the number of columns in the original matrix.
  • IA - a list that yields the number of nonzero elements in each row in the following way: IA[0] = 0, IA[i] = IA[i - 1] + <number of nonzero elements in row i>. The number of nonzero elements in row i is IA[i + 1] - IA[i].
  • JA - a list of the column indices of the elements in V, also of length NNZ. (zero-indexed)

Input will be a list of 3 lists and the number of columns in the original matrix, e.g. either

[
  [5, 8, 3, 6],
  [0, 0, 2, 3, 4],
  [0, 1, 2, 1],
  [4]
]

Or

V = [5, 8, 3, 6]
IA = [0, 0, 2, 3, 4]
JA = [0, 1, 2, 1]
NCOLS = 4

Output will be a decompressed matrix/list of lists:

[[0 0 0 0],
 [5 8 0 0],
 [0 0 3 0],
 [0 6 0 0]]

If your language doesn't support actual data structures, input and output may be text.

Process

  1. Create a 'matrix' of row width NCOLS.
  2. Populate the ith matrix row with N values from V if the corresponding array index (i + 1) of IA is non-zero, where N is the ith element of IA starting at the ith element of JA.
  3. repeat until V is empty
    i.e. above for the 0th matrix row IA[1] = 0, so this row has NCOLS=4 zeroes in it's first row. Then for matrix row 1, IA[2]=2 it takes 2 values from V starting at JA[1]=0. For matrix row 2, IA[3]=3 and IA[2]=2 so it takes the next (3 - 2 = 1) elements from V, starting at JA[2]=2. For matrix row 4 IA[4]=4 and IA[3]=3 so it takes the next (4 - 3 = 1) elements from V, starting at JA[3]=1.

Test cases

Input 1:

[ 5, 8, 3, 6 ]
[ 0, 0, 2, 3, 4 ]
[ 0, 1, 2, 1 ]
4

Output 1:

[[0 0 0 0],
 [5 8 0 0],
 [0 0 3 0],
 [0 6 0 0]]

Input 2

[ 10 20 30 40 50 60 70 80 ]
[  0  2  4  7  8 ]
[  0  1  1  3  2  3  4  5 ]
6

Output 2:

[[10 20 0 0 0 0],
 [0 30 0 40 0 0],
 [0 0 50 60 70 0],
 [0 0 0 0 0 80]]

Input 3:

[ ]
[ 0 0 0 0 ]
[ ]
3

Output 3:

[[0 0 0],
 [0 0 0],
 [0 0 0]]

Input 4:

[ 1 1 1 1 1 1 1 1 1 ]
[ 0 3 6 9 ]
[ 0 1 2 0 1 2 0 1 2 ]
3

Output 4:

[[1 1 1],
 [1 1 1],
 [1 1 1]]

Input 5:

[ 5, -9, 0.3, -400 ]
[ 0, 0, 2, 3, 4 ]
[ 0, 1, 2, 1, ]
4

Output 5:

[[0 0 0 0],
 [5 -9 0 0],
 [0 0 0.3 0],
 [0 -400 0 0]]

Assume inputs may contain any real number, you need not consider mathematical symbols or exponential representation (e.g. 5,000 will never be entered as 5e3). You will not need to handle inf, -inf, NaN or any other 'pseudo-numbers'. You may output a different representation of the number (5,000 may be output as 5e3 if you so choose).

Scoring

This is a , fewest bytes wins.

\$\endgroup\$
7
  • \$\begingroup\$ I'd suggest to at least briefly explain how the decompressing works in the post. The challenges should be self-contained as much as possible. \$\endgroup\$
    – Bubbler
    Apr 22, 2021 at 23:55
  • \$\begingroup\$ @bubbler, that's coming, but I need to figure out how to do that/explain it myself. I've left (WIP) on the question because of this. \$\endgroup\$ Apr 23, 2021 at 0:11
  • 1
    \$\begingroup\$ @Pureferret I think it would be better to allow only nonzero integers instead of any real number. It'd be easier for most languages that way \$\endgroup\$
    – user
    May 2, 2021 at 20:59
  • \$\begingroup\$ @user I think it's more interesting seeing those languages work around those difficulties. Also the original challenge required them, so it I my makes sense this one does too. \$\endgroup\$ May 2, 2021 at 21:14
  • \$\begingroup\$ @Pureferret I'm not sure many golfing languages support arbitrary precision floating point numbers. Would they be able to use strings, then? Edit: could you at least restrict it to rational numbers? Unlike Jon Skeet, most of us here don't know all the digits of pi :P \$\endgroup\$
    – user
    May 2, 2021 at 21:17
  • \$\begingroup\$ @user it needn't be arbitrary, just as long as it matches the test cases \$\endgroup\$ May 2, 2021 at 23:46
  • \$\begingroup\$ @Bubbler I think the process is correct? \$\endgroup\$ Jun 29, 2022 at 16:17
2
\$\begingroup\$

Round it up Nicely

When I work out, I often don't have a good plan for how many times to repeat an exercise, but in the interest of pushing myself I always keep going until I've done a "nice" number. Multiples of 5 are ideal, but multiples of 4 are acceptable too--unless they're 1 less than a multiple of 5, in which case I may as well do one more, or they're 1 more than a multiple of 5, in which case why didn't I already stop?

The challenge

Given an integer \$n\$ and a descending, pairwise coprime list of integers \$k_1, k_2, ..., k_m\$, output the least integer \$x \geq n\$ which is a multiple of some \$k_i\$ but is not 1 more or less than any multiple of any \$k_j\$ with \$j<i\$.

Test cases

n    k[1]...k[m]                        result
1    [5, 4]                             5
15   [5, 4]                             15
12   [5, 4]                             12
16   [5, 4]                             20
7    [5, 4]                             8
996  [5, 4]                             1000
1    [11, 7]                            7
15   [11, 7]                            22
133  [11, 7]                            140
1    [5, 3, 2]                          3
6    [5, 3, 2]                          10
6    [5, 3]                             10
11   [5, 3, 2]                          12
1    [100, 49, 9]                       9

Sandbox

  • Would it be more interesting without the descending/coprime guarantees?
  • Test cases are a WIP, but any additional suggestions?
  • Better title?
  • [How] should I note that the 1-above exclusion only matters if it would exclude the input itself? Should the task not be "rounding up" to make it more relevant?
\$\endgroup\$
2
  • 1
    \$\begingroup\$ the "dynamic goal" thing made me think it was going to be a challenge about determining how much excersize youd be doing in a given section, the sequence thing seems way out of left field and the requirements to be a workout number arbitrary, even in relation to the lore \$\endgroup\$ Feb 3, 2022 at 4:43
  • 1
    \$\begingroup\$ Could you please use words to describe the challenge? I do read quantifiers, but I suspect not all golfers do. \$\endgroup\$
    – pajonk
    Jun 30, 2022 at 6:25
2
\$\begingroup\$

Draw the Progress Pride flag

\$\endgroup\$
3
  • \$\begingroup\$ This is a really nice flag. It breaks one of the "golden rules of flag design" (no more than 3 colours) but that's the point. And harder to draw than it looks because you can't just draw a triangle for the brown and black. The spec is slightly inconsistent: the height calculated from the diagonal strip width is (340+170+170)*2 = 1360 which differs from the height calculated from the horizontal strip width 224 * 6 = 1344 so you might wat to fix that. \$\endgroup\$ Jun 24, 2022 at 21:04
  • 1
    \$\begingroup\$ I think the spec is reasonably clear but I have a few suggestions: 1. delete the word "obviously" - too patronizing. BTW this is covered by one of the standard loopholes here on Meta - it's always good to reference them. 2. So the minimum size is 1100 x 672? I recommend you state it explicitly rather than saying "only half" . "Exactly" is a strong word (especially when 170/sqrt 2 is actually 120.20815 ) - I recommend an error of 1 pixel. \$\endgroup\$ Jun 24, 2022 at 21:12
  • \$\begingroup\$ Thanks for the response I’ll fix this on Wednesday \$\endgroup\$
    – Alice F
    Jun 26, 2022 at 19:01
2
\$\begingroup\$

Draw this fractal generated by applying Newton's method to cosh(x) - 1

\$\endgroup\$
1
  • 1
    \$\begingroup\$ ooh seems really fun \$\endgroup\$
    – math scat
    Jul 1, 2022 at 18:13
2
\$\begingroup\$

Implement Binary Exponentiation

\$\endgroup\$
1
  • \$\begingroup\$ interestingly you can do the same thing with binary or peasant multiplication. actually any associative operation. \$\endgroup\$
    – qwr
    Jun 26, 2022 at 21:16
2
\$\begingroup\$

Is it an ordinal?

\$\endgroup\$
2
  • \$\begingroup\$ An interesting variation could be an open-ended-function sequence with the task being to generate every ordinal. Although I don't know if there would be a better way to answer that than smushing this decision problem and a "generate every ragged list" algorithm. \$\endgroup\$
    – pxeger
    Jun 30, 2022 at 10:54
  • \$\begingroup\$ @pxeger There's no way to generate every ordinal. There are uncountable ordinals, as well as countable but incomputable ordinals. \$\endgroup\$
    – Wheat Wizard Mod
    Jul 7, 2022 at 7:23
2
\$\begingroup\$

Draw the USA flag

\$\endgroup\$
1
  • 3
    \$\begingroup\$ "then your score is half of your program's length" is generally not welcomed here. \$\endgroup\$
    – tsh
    Jul 4, 2022 at 6:33
2
\$\begingroup\$

Convert from Greeklish to modern Greek

\$\endgroup\$
4
  • 1
    \$\begingroup\$ I like natural language challenges, however it seems a bit boring. I feel like we must have a few challenges already that are a substitution cypher with digraphs, and it probably isn't really doing anything new there. \$\endgroup\$
    – Wheat Wizard Mod
    Jul 7, 2022 at 7:18
  • \$\begingroup\$ @WheatWizard I understand that character substitution challenges do exist in the site. However, from my search of the sandbox, there isn't one for Greek, so it's somewhat original. Therefore, I am considering to post this. If this goes any well, I will also consider posting a harder natural language Greek challenge ;) \$\endgroup\$
    – solid.py
    Jul 7, 2022 at 8:08
  • \$\begingroup\$ I just don't think that it being Greek actually makes the task any more interesting. Like it's neat, but the task is just a very simple substitution. If you have a harder challenge about Greek I'd say go with that one first. \$\endgroup\$
    – Wheat Wizard Mod
    Jul 7, 2022 at 8:26
  • \$\begingroup\$ @WheatWizard Since I made the effort to post and polish this a bit, I will post it. If it doesn't receive as much upvotes due to its unoriginality so be it. This site runs for many years and its hard to come up with something 100% original. Personally, I think its a solid challenge. Finally, I will also link to other related challenges, as I've seen quite recently on non-original challenges. \$\endgroup\$
    – solid.py
    Jul 7, 2022 at 8:41
2
\$\begingroup\$

Solve a Card Suit Puzzle

\$\endgroup\$
2
\$\begingroup\$

Every possible pairing

\$\endgroup\$
1
  • \$\begingroup\$ Seems a little on the simple side I think. Might be a duplicate, but if it's not I think it's likely to score very well. :) \$\endgroup\$
    – Wheat Wizard Mod
    Jul 8, 2022 at 20:05
1
42 43
44
45 46
153

You must log in to answer this question.

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