From: Joel VanderWerf Date: 2009-04-25T12:13:23+09:00 Subject: Re: [QUIZ] Digits of Pi (#202) Jeff Schwab wrote: > Joel VanderWerf wrote: >> Daniel Moore wrote: >>> This week's quiz is to write a Ruby program that can compute the first >>> 100,000 digits of �. >> >> Bonus points for determining the first non-trivial ruby program >> encoded in that sequence of digits. > > Interesting idea! > > Is there any way of determining whether a given sequence of bytes is a > valid ruby program, other than running it? If this were my paternus > lingua, C++, I would start by chucking each candidate sequence at a > compiler. > >> (Represent a program source string as a sequence of octal triplets >> that is, or is not, a subsequence of the octal representation of �.) > > What is an "octal triplet?" Do you mean that the integer value of each > byte in the source code should be represented by a sequence of three > octal digits (e.g. 077 for ?? and 141 for ?a)? > > I'm curious: Why octal? It seems an odd choice, given that an "octal > triplet" corresponds to 9 bits, rather than the 8 in a standard byte. > Why not "hex pairs?" You're right, that didn't make much sense. I was just thinking of "\nnn" and counting to three, but of course that's 9 bits. What I was trying to do was slice off just enough bits to make a printable char with high probability. Otherwise, the 128..255 will keep breaking up otherwise legal program strings. Base 128 (7 bits) would be better, but there are still some non-printing chars. Even better would be to skip ascii and use something else, but I didn't want to get too far into fantasy land... > Btw, isn't every finite sequence of digits a subsequence of Pi's > representation in that base? Or is that unknowable? IIRC that's true. But the _first_ ruby program... gee, that's got to mean something. :) -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407