Article 33ZBS Clean obfuscated code

Clean obfuscated code

by
John
from John D. Cook on (#33ZBS)

One way to obfuscate code is clever use of arcane programming language syntax. Hackers are able to write completely unrecognizable code by exploiting dark corners of programming techniques and languages. Some of these attempts are quite impressive.

But it's also possible to write clean source code that is nevertheless obfuscated. For example, it's not at all obvious what the following code computes.

def f(x): return 4*x*(1-x)def g(x): return x**3.5 * (1-x)**2.5sum = 0x = 1/7.0N = 1000000for _ in range(N): x = f(x) sum += g(x)print(sum/N)

The key to unraveling this mystery is a post I wrote a few days ago that shows the x's in this code cover the unit interval like random samples from a beta(0.5, 0.5) distribution. That means the code is finding the expected value of g(X) where X has a beta(0.5, 0.5) distribution. The following computes this expected value.

obfuscated3.svg

The output of the program matches 1/60I to six decimal places.

Related post: What does this code do?

Bm2Kfp9hMdw
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments