@ sohinee basak it won't matter much . +1 or -1 will get u right range.. : ...
On Thu, Jun 21, 2012 at 9:54 PM, sohinee basak <sohine...@gmail.com> wrote: > i have a doubt ... is the range of rand7 from 0 to 6 or from 1 to 7 > > On Fri, Jun 22, 2012 at 10:13 AM, Anant Sharma <black.b...@gmail.com> wrote: >> >> >> The reason why finding a solution to this question is difficult is because >> the combinations of rand5() function which we use ( eg. rand5() + rand5()%2 >> ) leads to some numbers being generated more frequently than others. So the >> problem would be solved if we could find a function which leads to each >> output being generated an equal number of times ( once, or maybe more. ) >> >> 5 * rand5() + rand5() >> >> Looking at this function, it is easy to see that each value from 0 to 24 >> will be generated only once for every respective value that first and second >> rand5() returns. >> >> Suppose the first rand5() returns 0, then the second rand5() can return >> any value from 0 - 4. Now see that no value from 0-4 could be generated by >> any other combination. When the value returned by the second rand5() is 1, >> corresponding to the value returned by second rand5(), we could get 5 - 9. >> >> >> Now we have each number from 0-24 appearing once. But simply returning the >> mod of this value with 7 wouldn't lead to equal probability distribution as >> the values 0 - 3 would be returned more times than 4-6. So to fix this >> inequality, we ignore when the value of the function is more than 20. Now >> doing mod with 7 will result in every number 0 - 6 being returned with equal >> probability. >> >> We could even have ignored the values above 6, or the values above 13, the >> only difference being that it would take more number of calls to return a >> rand7() result. >> >> This way is non-deterministic i.e. we cannot say how many times the >> function will be called before we get the rand7() result, but we can be >> sure that whenever the function returns a value, it would have been as >> probable as any other value from 0 - 6. Taking the mod of the result of the >> function, there would be 3 ways in which each digit 0 through 6 can be >> generated. >> >> >> Implementation: >> >> int rand7 ( ) { >> int num = 5 * rand5 ( ) + rand ( ) ; >> if ( num > 20 ) >> return rand7 ( ) ; >> else >> retutrn num % 7 ; >> } >> >> On Thu, Jun 21, 2012 at 12:44 PM, Abhishek Sharma <abhi120...@gmail.com> >> wrote: >>> >>> @umer >>> it's not random,but biased >>> >>> >>> On Wed, Jun 20, 2012 at 11:16 AM, Umer Farooq <the.um...@gmail.com> >>> wrote: >>>> >>>> Hmmm, true. That's what I expected in this solution. Similarly, we can >>>> get 3 by (3,3) (1,2) >>>> >>>> However, did you take a look at the other solution I proposed? I guess >>>> that solves the problem to some extent. >>>> >>>> >>>> On Tue, Jun 19, 2012 at 7:18 PM, Sourabh Singh >>>> <singhsourab...@gmail.com> wrote: >>>>> >>>>> @Umer and Navin : >>>>> 1 is generated by (1,3) only. >>>>> 2 is generated by (1,1) and (2,3). >>>>> >>>>> so given solution is wrong >>>>> >>>>> >>>>> On Tue, Jun 19, 2012 at 5:17 AM, Sourabh Singh >>>>> <singhsourab...@gmail.com> wrote: >>>>>> >>>>>> @ ALL >>>>>> >>>>>> please. post along with your method . >>>>>> proof than it make's equal distribution over the given range. >>>>>> >>>>>> On Tue, Jun 19, 2012 at 4:47 AM, Navin Kumar >>>>>> <algorithm.i...@gmail.com> wrote: >>>>>>> >>>>>>> @Umer: >>>>>>> >>>>>>> rand(5) + (rand(5)%2): => it will never give 6 because for rand(7) >>>>>>> range will be 0-6. >>>>>>> So better try this: rand(5) + (rand(5)%3). >>>>>>> >>>>>>> >>>>>>> On Tue, Jun 19, 2012 at 2:45 PM, Umer Farooq <the.um...@gmail.com> >>>>>>> wrote: >>>>>>>> >>>>>>>> rand(5) + (rand(5)%2); >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Jun 19, 2012 at 12:30 PM, Sourabh Singh >>>>>>>> <singhsourab...@gmail.com> wrote: >>>>>>>>> >>>>>>>>> @ sry >>>>>>>>> condition should be: >>>>>>>>> >>>>>>>>> if(20*prob <= 500/7) :-) >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Jun 19, 2012 at 12:26 AM, Sourabh Singh >>>>>>>>> <singhsourab...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>> @ALL >>>>>>>>>> >>>>>>>>>> Given a random number generator say r(5) generates number between >>>>>>>>>> 1-5 uniformly at random , use it to in r(7) which should generate a >>>>>>>>>> random >>>>>>>>>> number between 1-7 uniformly at random >>>>>>>>>> >>>>>>>>>> i have seen this on many site's but not a single correct solution. >>>>>>>>>> all solution's posted got rejected by someone else.: >>>>>>>>>> plz.. suggest some algo : >>>>>>>>>> >>>>>>>>>> my aprroach: >>>>>>>>>> >>>>>>>>>> let's assume a rectangle : >>>>>>>>>> >>>>>>>>>> 100 |___________________ >>>>>>>>>> |___________________|______ >>>>>>>>>> 500/7 | | | >>>>>>>>>> | | | >>>>>>>>>> |___________________|______| >>>>>>>>>> 0 1 2 3 4 5 6 7 >>>>>>>>>> now : >>>>>>>>>> >>>>>>>>>> let : num = rand(5); >>>>>>>>>> prob = rand(5); >>>>>>>>>> >>>>>>>>>> if(prob <= rand(5)) >>>>>>>>>> print num >>>>>>>>>> else >>>>>>>>>> print 5 + num*(2/5) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Umer >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Algorithm Geeks" group. >>>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Algorithm Geeks" group. >>>>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> algogeeks+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>> >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Algorithm Geeks" group. >>>>> To post to this group, send email to algogeeks@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> algogeeks+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/algogeeks?hl=en. >>>> >>>> >>>> >>>> >>>> -- >>>> Umer >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To post to this group, send email to algogeeks@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> algogeeks+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/algogeeks?hl=en. >>> >>> >>> >>> >>> -- >>> Abhishek Sharma >>> Under-Graduate Student, >>> PEC University of Technology >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Algorithm Geeks" group. >>> To post to this group, send email to algogeeks@googlegroups.com. >>> To unsubscribe from this group, send email to >>> algogeeks+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >> >> >> >> >> -- >> Anant Sharma >> IIIrd year >> Computer Enginering >> Delhi Technological University >> (formerly DCE) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algogeeks@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.