[Edu-sig] Math through programming: sample challenge

kirby urner kirby.urner at gmail.com
Fri Apr 21 23:29:34 CEST 2006


In math world we have these things called "almost integers" which are
weird expressions with transcendentals, usually, that evaluate to
within a very tiny percent of wholesome whole  numberhood.

Probably the most famous example, owing to Ramanujan, is math.e **
(math.pi * math.sqrt(163)), which works out to an "almost integer" of
262537412640768744.

http://www.research.att.com/%7Enjas/sequences/A060295

Challenge:

Write a generator of Python expressions (up to you if you use an
actual generator) with a filter to keep only those that evaluate to
within epsilon of an integer.

Proposed look (just an idea):

>>> almosts = GenExps(1e-4)
>>> almosts.next()
('e** (pi * sqrt(58))',  24591257751.999931)

Further Reading:
http://mathworld.wolfram.com/AlmostInteger.html

Kirby

Author's note:  I haven't tested this for feasibility yet.  I've got a
new Pythonic Mathematics class starting tomorrow c/o Saturday Academy,
so might run it by my students, some of whom already know Python
pretty well.  It's a good exercise in building valid expressions that
evaluate to floats, coupled with some objective (to get "almost
integers").


More information about the Edu-sig mailing list