In my new sandboxed challenge, I'm looking to ban crypto / one-way functions that make it impossible to get the input from the output.

I started out requiring only using functions that are bijectve, but that bans functions that "gets a character from a particular index of a string", as pointed out by aschepler.

I would like to ban crypto / one-way functions that make the challenge not fun, while allowing functions that get a char from an index in a string, etc. How can I do this? I'd prefer something that's worked in the past.

  • 2
    \$\begingroup\$ You can just have a rule to explicitly ban "hashing, encryption, or random number generation." That's worked in the past. \$\endgroup\$ Jul 24, 2017 at 14:35
  • \$\begingroup\$ I think that a[b] is pretty much one-way (e.g. 'The quick fox jumps over the lazy dog'[10] would return 'f' and there's no way to figure out where did the 'f' come from). \$\endgroup\$ Jul 24, 2017 at 14:35
  • 2
    \$\begingroup\$ Requiring bijective functions wouldn't prevent one-way functions anyway. \$\endgroup\$ Jul 24, 2017 at 15:01
  • \$\begingroup\$ @PeterTaylor I think that bijective functions always have an inverse, since every value maps to only one value, and is mapped to by only one value too. \$\endgroup\$ Jul 24, 2017 at 15:05
  • 6
    \$\begingroup\$ @EriktheOutgolfer, existence is not the point. Computability is the point: it's easy to compute in the forward direction, but hard in the inverse direction. \$\endgroup\$ Jul 24, 2017 at 15:07


You must log in to answer this question.