That gives an answer of 40,320, but the correct answer is 39. You
can't multiply all of those values together and expect to get the
right answer. There are not 14 possible values for the first digit,
and if there were, for any particular value of the first digit there
are not 16 possible values for the second digit, there are only one or
two. Your mistake is treating each digit as if it is independent of
the rest of the number, but it is not. Try several input cases and see
if your method gives a reasonable result. For example, if n=10 and the
absolute differences are {6,6,6,6,6,6,6,6,6}, by your thinking there
would be 4^9=262,144 possible numbers. In reality, the only possible
numbers are
1717171717
2828282828
3939393939
6060606060
7171717171
8282828282
9393939393

If your algorithm gives an answer other than 7, keep working on it.

Don

On Dec 13, 1:46 pm, Gaurav Kumar <gkuma...@gmail.com> wrote:
>
> 3 2 5 1 so the total number of numbers possible are (10-3) x 2 x (10- 2) x
> 2 x (10 -5 ) x 2 x (10 - 1 ) x 2
>
> In case when you have 0 0 0 as the difference, possible combinations are
> (10 - 0) x 2 / 2 x 1 way x 1 way = 10 ways
>
> Gaurav
>
> On Tue, Dec 13, 2011 at 10:55 AM, Gaurav Kumar <gkuma...@gmail.com> wrote:
> > When the difference is 0, the numbers will be repeated:
> > 000, 111, 222, 333, 444, 555, 666, 777, 888, 999 but only these are
> > possible.
>
> > Gaurav
>
> > On Tue, Dec 13, 2011 at 10:47 AM, Don <dondod...@gmail.com> wrote:
>
> >> Moheed,
> >> If n=3 and absdiff = {0,0}, your program says that there are 100
> >> possible numbers. Can you show me at least 10 of them?
> >> Don
>
> >> On Dec 13, 12:24 pm, Moheed Moheed Ahmad <mohe...@gmail.com> wrote:
> >> > To get a abs difference of 0 there are 10 ways
> >> > similarly getting abs difference of 1 there are 9x2 ways(w1)
> >> > for 2 its 8x2 (say w(2)
> >> > for 3 its 7x2
> >> > .....
> >> > for 9 its 1x2(w9)
> >> > let w(i) represents the number of ways to get abs diff of i.
> >> > So total numbers that are possible from the given abs diff   i j k l m
> >> ...
> >> > (w(i) x w(j) x w(k) x w(l) x.....)
>
> >> > Now algo will be to scan the given abs diff and multiply the w(i) for
> >> each
> >> > absdiff .
>
> >> > int calculate_possible_nums(int absdiff[], int len){
> >> >     int ways[]={10, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1};
> >> >     int numways=1;
> >> >     for ( i=0; i < len; i++){
> >> >          numways = numways * ways[absdiff[i]];
> >> >     }
> >> >      return numways;}
>
> >> > -Moheed
> >> > 'If a man neglects education, he walks lame to the end of his life.'
>
> >> > On Tue, Dec 13, 2011 at 11:20 PM, Don <dondod...@gmail.com> wrote:
> >> > > There should be 39 combinations with that input. You are missing
> >> > > numbers which include the digit zero, such as 14610, 30278, and 52056.
>
> >> > > Don
>
> >> > > On Dec 13, 11:37 am, tech coder <techcoderonw...@gmail.com> wrote:
> >> > > > I tried the problem and written the code for it . it is in java. it
> >> is
> >> > > > printing all the possible numbers
> >> > > > I  am treating the differences ans an array of integers.
>
> >> > > > here is the code
>
> >> > > > public class Main {
>
> >> > > >     public static void main(String[] args)
> >> > > >     {
> >> > > >        int digit[]={3,2,5,1};// array of absolute differences
>
> >> > > >             int digit[]={3,2,5,1};
> >> > > >            for(int num=1;num<=9;num++) // call with all possible
> >> initial
> >> > > > numbers
> >> > > >            findNumber(digit,4,num,0,num);
> >> > > >     }
>
> >> > > >     public static void findNumber(int digit[],int n,int num,int
> >> i,int
> >> > > > oldDigit)
> >> > > >     {
> >> > > >         if(i==n)
> >> > > >         {
> >> > > >             System.out.print(num+"  ");
> >> > > >             return;
> >> > > >         }
>
> >> > > >         {
> >> > > >             int o=digit[i]+oldDigit;
> >> > > >             if(o<10)
> >> > > >                 findNumber(digit,n,10*num+o,i+1,o);
> >> > > >             o=oldDigit-digit[i];
> >> > > >             if(o>0)
> >> > > >                 findNumber(digit,n,10*num+o,i+1,o);
>
> >> > > >         }
> >> > > >     }
>
> >> > > > }
>
> >> > > > and here is the output
>
> >> > > > 14612  14278  14276  25723  25721  25389  25387  36834  36832  36498
> >> > >  47945
> >> > > >  47943  41389  41387  58612  52498  69723  69721  63167  63165
> >>  74612
> >> > > >  74278  74276  85723  85721  85389  85387  96834  96832  96498
> >> > > > BUILD SUCCESSFUL (total time: 0 seconds)
>
> >> > > > On Tue, Dec 13, 2011 at 11:11 PM, Dave <dave_and_da...@juno.com>
> >> wrote:
> >> > > > > @Amir: Presumably, since these are digits in a number, they are
> >> > > > > bounded on the bottom by 0 and on the top by radix-1. So in
> >> decimal,
> >> > > > > if a digit is 7 and the absolute difference between it and the
> >> next
> >> > > > > digit is 3, there is only one possibility for the next digit, 7-3
> >> = 4,
> >> > > > > since 7+3 is too large. So only some subset of the 2^(n-1)
> >> > > > > combinations of addition and subtraction may be possible.
>
> >> > > > > Dave
>
> >> > > > > On Dec 13, 4:15 am, Amir hossein Shahriari
> >> > > > > <amir.hossein.shahri...@gmail.com> wrote:
> >> > > > > > actually there are infinite number of sequences that match it
> >> > > > > > for example if the absolute differences are 3 2 5 1
> >> > > > > > one possible sequence is 6 3 5 0 1 one other is 7 4 6 1 2 or 8
> >> 5 7 2
> >> > > 3
> >> > > > > > and you can add any integer value to all elements and the
> >> result will
> >> > > > > still
> >> > > > > > be valid
> >> > > > > > actually you can start with any number and and then the second
> >> number
> >> > > > > will
> >> > > > > > be equal to the first number that you chose plus/minus the first
> >> > > absolute
> >> > > > > > difference and so on
>
> >> > > > > > so if we are given the first element of the sequence there are
> >> > > 2^(n-1)
> >> > > > > ways
> >> > > > > > to find a valid sequence because for each absolute difference
> >> we can
> >> > > > > either
> >> > > > > > add the absolute difference to the last sequence element or
> >> subtract
> >> > > the
> >> > > > > > absolute difference from it
>
> >> > > > > > On Mon, Dec 12, 2011 at 9:01 PM, KAY <
> >> amulya.manches...@gmail.com>
> >> > > > > wrote:
> >> > > > > > > If for a number n digits long, the absolute difference between
> >> > > > > > > adjacent digits is given, how to find out the number of
> >> different
> >> > > > > > > numbers with these absolute differences ?
>
> >> > > > > > > for eg,
> >> > > > > > > if n=5
> >> > > > > > > and the absolute differences are
> >> > > > > > > 3 2 5 1
> >> > > > > > > then 1 possible number is
> >> > > > > > > 6 3 5 0 1    (because |6-3|=3,|3-5|=2 and so on...)
>
> >> > > > > > > How many such numbers will be there?
>
> >> > > > > > > --
> >> > > > > > > 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.
>
> >> > > > --
> >> > > > *
>
> >> > > >  Regards*
> >> > > > *"The Coder"*
>
> >> > > > *"Life is a Game. The more u play, the more u win, the more u win ,
> >> the
> >> > > > more successfully u play"*
>
> >> > > --
> >> > > 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.

Reply via email to