> I did not know you were a mathematician =)

Yup, trained in theory. This computer stuff is just applied math,
With not as much math as I'd like most days, but the pay is better. :-)

(I wasn't even the only Boston.PM member at the NES MAA section meeting
last weekend.
http://www.southernct.edu/organizations/nesmaa/fall2005meeting.html )

> On The terminology point you mentioned, I must squarely place the
blame
> of the choice of words on the way Discrete Math is taught these days.
> Standard texts refer to Permutation, Combination, Permutation with
> Repetition, and Combination with Repetition. 

Ahh. I guess Google Books hasn't gotten to those texts yet. I didn't
take a close look at those texts the last time the Math conference had
textbook vendors. I hope Don Knuth's "Concrete Math" book hasn't taken
that linguistic shortcut ... but perhaps that's the brave bold future.
*sigh*

> If you have any hope of rectifying the issue, I recommend you look at
> the relevant wikipedia page and submit corrections.

The module author has invited me to send him a diff file to update the
pod. I'll probably do that from home on my own time.  I submitted
comment to MathWorld comment page (it's not a Wiki per se, it's managed
content).

> at hand - the module. In my explorations of it, I have found that it
> leves a bit to be desired in terms of performance -- generating the
65k
> striungs possible in the (a b c d) alphabeth takes 10 minutes,

That's not much better than my naive <HUMOR> generate-filter!

> I do not want to add frequency information, every symbol is equally
> likely for me, 

In which case the module's implementation has a *lot* of overhead you
don't need.

If the module generates the whole set and that gives it out on the
"next" options, it's a poor iterator implementation.

> and I would like to code up this in a way that (a) is
> thread friendly, 

Issues there ... see below

> and (b), more importantly, is memory efficient, which
> the module is not. 

Since you say this, you do need a LIST of all the options, so a pure
iterator would do?
  
The optimal solution is probably in MJD's Higher Order Perl, available
at Barnes & Noble, Quantum, Borders -- and (is or will be?) online for
free-as-in-beer. (And cut-and-paste!) http://hop.perl.plover.com/
(Just don't buy it from Amazon, that would be an insult to the author
... see his website to understand.)

Be careful on making the iterator thread-safe ... but an iterator should
be easier to make thread safe than a memory hog, as long as you do the
critical section right.  http://perldoc.perl.org/perlthrtut.html Alas,
MJD's book only uses the word "threaded" once, in a non-technical sense.

> I need to figure out a way to do it w/o using great amounts of ram,

HOP. You want an iterator.  He has iterators for general functions and
he has functions for permutations, probably has iterators for
permutations.
http://hop.perl.plover.com/grep.cgi?q=permutation
http://hop.perl.plover.com/Examples/ Scroll or search for permut

> what would a "Combination with
> Repetition" be called 

MathWorld.Wolfram.com "Ball Picking" page says it's MultiChoose. So I
guess that's it's ugly name.

Happy Thanksgiving,

Bill
aka n1vux on use.perl.org ...
 
_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to