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 ' ? >