caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: john.chu@east.sun.com
To: Caml-list@inria.fr
Subject: [Caml-list] Holding a set of random integers of very wide range?
Date: Mon, 2 Sep 2002 09:10:18 -0400	[thread overview]
Message-ID: <15731.25402.232987.3449@gargle.gargle.HOWL> (raw)
In-Reply-To: <Pine.A32.3.95.1020902105608.97756A-100000@ibm1.cicrp.jussieu.fr>

Diego Olivier Fernandez Pons writes:
> If you give me some more informations (on typical ranges that you can
> find in unicode subsets) I will be able to give more precise answers

This brings up a possibly related question that I have.

For reasons I tried to explain in a previous draft of this e-mail and
has been cut due to the amount of space it took, I need to generate
multiple permuted lists of integers ranging from 0 to approximately
2^100 (or more, it's a bit open-ended unfortunately).

Since I only need one value at a time, I can use a lazy list for
this. i.e., the head holds a value and the tail is a suspension of the
state I need to generate the next value.  No big deal there.

The big deal, for me anyways, is that the state I need is tracking the
integers that I've already used (so that I don't generate the same one
twice) given that the range of possible values is so large.

I'm currently using the very low-tech solution of maintaining a list
of ranges of used values.  (i.e., when I use a value that would link 2
different ranges, I go coalesce the list.  The worst case would be if
I picked all the odd integers or all the even integers.)

Given the recent talk of Patricia trees and bit sets, I was wondering
if some variant of either one of those, or some other representation
would be better for what I'm doing?  (I figure at the very least I
ought to be using a tree of ranges of used values.  I'm currently
using the Big_int module to represent my integers.)

BTW, it's extremely unlikely I will ever need every single value in
the lazy list.  I will probably have queried the garbage collector and
declared defeat long before then.  I'm hoping that, at worst, I will
need only several thousand values from each permuted list.  But I
don't want to precompute them since I may not need several thousand
values from some lists and others might need more.  So I want to
generate only the numbers that are necessary.  (Sorry, this bit only
makes sense if you knew what I'm using this for.  The short
description would be backtracking to find a set of variable values
which satisfy a bunch of contraints where there can be multiple
possible solutions of which I want a random one where variable values
can be mapped onto a potentially very large range of integers.  I'm
applying as many constraints before backtracking as possible to reduce
the state space to search.)

Thanks.

					john
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  reply	other threads:[~2002-09-02 13:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3D70203F.1000106@ozemail.com.au>
2002-09-02  9:40 ` [Caml-list] Explaining bit sets Diego Olivier Fernandez Pons
2002-09-02 13:10   ` john.chu [this message]
2002-09-02 13:25     ` [Caml-list] Holding a set of random integers of very wide range? Noel Welsh
2002-09-02 17:18     ` Tim Freeman
2002-09-02 21:30     ` Berke Durak
2002-09-02 23:46   ` [Caml-list] Explaining bit sets Yamagata Yoriyuki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15731.25402.232987.3449@gargle.gargle.HOWL \
    --to=john.chu@east.sun.com \
    --cc=Caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).