← Back to context

Comment by embedding-shape

19 hours ago

On the other spectrum, shortest JS fizzbuzz (62 characters):

    for(i=0;++i<101;console.log(i%5?f||i:f+'Buzz'))f=i%3?'':'Fizz'

Anyone can beat it? (any language accepted)

LLM: wrt frst 100fizzbuzz

  • Actually kind of curious challenge; what's the shortest prompt you can use, which would produce the shortest possible fizzbuzz?

    Edit: counting including the entire assistant reply, any text + code

    • "golf fizbuz" works well, giving a 54 Python one

          for i in range(1,101):print("Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i)
      

      "golf fizzbuzz" gave a 46 perl one

          print$_%15?$_%3?$_%5?$_:Buzz:Fizz:FizzBuzz,$/for 1..100
      

      Both "code fizzbuzz" and just "fizbuz" gave this longer python one-liner

          print('\n'.join("Fizz"*(i%3==0)+"Buzz"*(i%5==0) or str(i) for i in range(1, 101)))
      

      That's the magic of using a known problem, you don't need to write much and even with incomplete prompts it can be understood. Everything a different new chat in kimi.ai, which was the AI window that I found first among mine.

      Not interesting enough, to me, to try with other LLMs or phrases.

      3 replies →

    • My attempt:

      > Prompt: mkfzbuzgolf

      > LLM Used: Default ChatGPT free LLM

      > Output: for i in range(1,101):print("Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i)

      So, 11 prompt characters and 62 output.

      ——-

      Did a few more tries and I can get the 4-character string “glfz” (2 tokens) to work surprisingly consistently. But only on ChatGPT

      1 reply →

Python:

[(x%3<1)*'Fizz'+(x%5<1)*'Buzz'or x for x in range(1,101)]

edit: Hacker News stripped the * character. Now it's properly escaped.

you can flip it and save a few bytes, but not valid fizzbuzz then:

for(i=100;i--;console.log(i%5?f||i:f+'Buzz'))f=i%3?'':'Fizz'