Re: Random numbers according to a rule / function
- To: mathgroup at smc.vnet.net
- Subject: [mg68955] Re: [mg68933] Random numbers according to a rule / function
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 25 Aug 2006 05:35:11 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
conditionalRandom[test_Function, type_:Integer, range_]:=
Module[{r},
While[Not[test[r=Random[type,range]]]];
r];
test1=(Mod[#,13]==0&&Mod[#,19]==0)&;
a=conditionalRandom[test1,{100,1000}]
494
test1[a]
True
test2=PrimeQ[#]&&Total[IntegerDigits[#]]==10&;
b=conditionalRandom[test2,{1,10000}]
9001
test2[b]
True
Bob Hanlon
---- bd satish <bdsatish at gmail.com> wrote:
> Hi buddies ,
>
> I want to write a module / program that generates random
> numbers according to some rule (or function).
>
> Say , "A number that is divisible by 13 & 19" or "A prime number whose sum
> of digits is exactly 10" , etc.
>
> Let me call this module as RandomRule[ f ]. Everytime I evaluate this
> function , I must get a number 'x' such that f [x] is True.
>
> For different invokes , RandomRule[ f ] must give different values. There
> are no restrictions on the function ' f ' .
>
> For simplicity, let ' x ' be an integer.
>
> This is what I tried :
>
> "A number that is divisible by 13 and 19"
>
> I put the command
>
> (Mod [ # , 14 ] == 0 && Mod[ # , 19 ] ==0 )&
> Random[Integer,{100,1000}]
>
> in a Do loop until the above statement returns True. And returned the value
> of Random[Integer,{100,1000}]
> that made this statement True.
>
> My problem is , how can I generalize this to include ANY function ' f ' ?
>