We all know and love (!) the leaderboard, but how about a different method?

One can solve a problem with a simple, naive method resulting in a short program and long runtime, or put in lots of explicit optimizations for more code and shorter runtime. (Or if you’re really good, a short, fast program!)

I propose the line-second.

Take the number of lines in your program (eg, 42 lines) and the runtime (eg 0.096 seconds). Multiply these together to get a score of 4.032 line-seconds.

A smaller score is a shorter, faster program.

Similarly, (for a particular solver), a larger score is a “harder” problem.

  • Ategon@programming.devM
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    The issue with that and reason why AoC doesnt use that for the leaderboard is they dont have access to the code people write, just the final result

    Adding that as an option would mean having something that takes into account differences in base runtimes of code for different languages (e.g. scripting languages taking longer) so that its feasible to code it in anything, and having the ability to execute many different kinds of code which can be a pain to set up (and would mean youre then running arbitrary code unless you sandbox it)

    I used that as the way to rank people in !challenges@programming.dev when I was running that and its been on hiatus for awhile due to the effort needed to run it since I havent had time due to building up things in the instance such as !pangora@programming.dev

    It could work if self reported but then its easy to cheat

    • lwhjp@lemmy.sdf.orgOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Oh sure, it’s only for fun - I was thinking of it more of a way to compare my own solutions to different problems.

      I didn’t notice there was a challenges community! That’s awesome. (Maybe a more casual honor-based version where anybody can submit puzzles would be easier? Creating puzzles sounds like fun!)