vigenere tableau, HOW to generate this algorithm in two dimensional array

Discussion in 'Java' started by spidey12345, Feb 8, 2007.

  1. spidey12345

    spidey12345 Guest

    0 1 2 3 4 5 6 7 ..... 25
    1 2 3 4 5 6 7 8.... 25 0
    2 3 4 5 6 7 8 9..24 25 0 1
    3 4 5 6..... .................2
    .. 3
    .. .
    .. .
    ... ..
    25 0 1 2 3 4 5.... 24


    so basically the first row will be 0 -25
    second row will be 1- 0(when it hits 25, it will go to 0 again)
    and so forth
    column wise it will go from 0 to 25 also

    anybody know how to generate this algorithm in java, please help.
    spidey12345, Feb 8, 2007
    #1
    1. Advertising

  2. On 7 Feb 2007 21:13:33 -0800, spidey12345 wrote:
    > 0 1 2 3 4 5 6 7 ..... 25
    > 1 2 3 4 5 6 7 8.... 25 0
    > 2 3 4 5 6 7 8 9..24 25 0 1
    > 3 4 5 6..... .................2
    > . 3
    > . .
    > . .
    > .. ..
    > 25 0 1 2 3 4 5.... 24


    [...]

    > anybody know how to generate this algorithm in java, please help.


    Do you know how to generate the first row?

    There is a relationship between the row number, and the offset used
    within the row. Do you not see it? You can use the same code to
    generate all 25 rows.

    Also, do you know about Java's "remainder" operator?

    That said, I don't think that it's necessary to actually generate all
    of those rows in order to implement Vigenere.

    /gordon

    --
    [ don't email me support questions or followups ]
    g o r d o n + n e w s @ b a l d e r 1 3 . s e
    Gordon Beaton, Feb 8, 2007
    #2
    1. Advertising

  3. spidey12345

    spidey12345 Guest

    On Feb 8, 2:26 am, Gordon Beaton <> wrote:
    > On 7 Feb 2007 21:13:33 -0800, spidey12345 wrote:
    >
    > > 0 1 2 3 4 5 6 7 ..... 25
    > > 1 2 3 4 5 6 7 8.... 25 0
    > > 2 3 4 5 6 7 8 9..24 25 0 1
    > > 3 4 5 6..... .................2
    > > . 3
    > > . .
    > > . .
    > > .. ..
    > > 25 0 1 2 3 4 5.... 24

    >
    > [...]
    >
    > > anybody know how to generate this algorithm in java, please help.

    >
    > Do you know how to generate the first row?
    >
    > There is a relationship between the row number, and the offset used
    > within the row. Do you not see it? You can use the same code to
    > generate all 25 rows.
    >
    > Also, do you know about Java's "remainder" operator?
    >
    > That said, I don't think that it's necessary to actually generate all
    > of those rows in order to implement Vigenere.
    >
    > /gordon
    >
    > --
    > [ don't email me support questions or followups ]
    > g o r d o n + n e w s @ b a l d e r 1 3 . s e




    i see that, but i want to generate a two dimensional array for a
    reason, how would i do it?

    i mean it would be nice for you to write the algorithm down, rather
    than telling me what to do, because i wanted that 2d array for reason

    offset is by 1 to the left each time time, yeah i see that, how would
    you write the acutal algorithm, sorry, i guess i just need to see some
    code
    to understand it
    spidey12345, Feb 8, 2007
    #3
  4. spidey12345

    Ian Wilson Guest

    Re: vigenere tableau, HOW to generate this algorithm in two dimensionalarray

    spidey12345 wrote:
    > On Feb 8, 2:26 am, Gordon Beaton <> wrote:
    >
    >>On 7 Feb 2007 21:13:33 -0800, spidey12345 wrote:
    >>
    >>
    >>>0 1 2 3 4 5 6 7 ..... 25
    >>>1 2 3 4 5 6 7 8.... 25 0
    >>>2 3 4 5 6 7 8 9..24 25 0 1
    >>>3 4 5 6..... .................2
    >>>. 3
    >>>. .
    >>>. .
    >>>.. ..
    >>>25 0 1 2 3 4 5.... 24

    >>
    >>[...]
    >>
    >>
    >>>anybody know how to generate this algorithm in java, please help.

    >>
    >>Do you know how to generate the first row?
    >>
    >>There is a relationship between the row number, and the offset used
    >>within the row. Do you not see it? You can use the same code to
    >>generate all 25 rows.
    >>
    >>Also, do you know about Java's "remainder" operator?
    >>
    >>That said, I don't think that it's necessary to actually generate all
    >>of those rows in order to implement Vigenere.

    >
    >
    >
    >
    > i see that, but i want to generate a two dimensional array for a
    > reason, how would i do it?


    Most programming is done by thinking about the problem, breaking it down into
    smaller pieces until you have a small enough piece that you can work on.

    > i mean it would be nice for you to write the algorithm down,


    This is one of those "give a fish" or "teach to fish" situations. Your question
    is so elementary that if you are not willing to try and think about it a little
    yourself then you are unlikely to ever get much further.

    First reduce the problem to generating the first line in a one dimensional
    array. Once you have done that it will be a lot easier to see how to extend it
    to a two dimensional array.


    Here's a start:

    Class Vigenere {
    public static void main(String[] args) {
    int index = 0;
    // Do something here that increments index in a loop until it reaches 25
    int value = index;
    System.out.println(index+": "+value);
    // close the loop mentioned above
    }
    }

    I haven't tried the above, type it in and get it working.

    Then replace my comments with the appropriate Java statements.

    Once you have that working, work out how to declare an array of integers and
    replace the println with a statement that assigns a value to an element of an array.

    Then try thinking about adding another loop corresponding to the other dimension
    of your array. Think about your "offset" and how it could be applied to the
    calculation of the value.

    At each step you will have a working program that shows successful completion of
    a small part of the problem.
    Ian Wilson, Feb 8, 2007
    #4
  5. On 8 Feb 2007 02:02:27 -0800, spidey12345 wrote:
    > i mean it would be nice for you to write the algorithm down, rather
    > than telling me what to do, because i wanted that 2d array for reason


    I wasn't "telling you what to do" at all. I simply asked some leading
    questions to help you help yourself. This is extremely basic stuff.

    /gordon

    "Build a man a fire and he'll be warm for a day. Set a man on fire and
    he'll be warm for the rest of his life." -- Terry Pratchett

    --
    [ don't email me support questions or followups ]
    g o r d o n + n e w s @ b a l d e r 1 3 . s e
    Gordon Beaton, Feb 8, 2007
    #5
  6. spidey12345

    spidey12345 Guest

    Thanks guys, i got it to work, would this be efficient, how would i
    make this code better


    public class test {
    public static void main (String[] args)
    {
    int twoarray[][] = new int[26][26];

    int offset = 0;
    for(int i = 0; i<26; i++)
    {

    for(int j = 0; j<26; j++)
    {
    int value;

    value = j +offset;
    if(value > 25)
    value = value - 26;

    twoarray[j] = value;
    }
    offset++;
    }


    for(int i = 0; i <26; i++)
    {
    for(int j = 0; j <26; j++)
    {
    System.out.print(twoarray[j]);
    System.out.print(" ");
    }
    System.out.println();
    }

    }
    }
    spidey12345, Feb 8, 2007
    #6
  7. Re: vigenere tableau, HOW to generate this algorithm in two dimensionalarray

    spidey12345 wrote:
    > Thanks guys, i got it to work, would this be efficient, how would i
    > make this code better
    >
    >
    > public class test {
    > public static void main (String[] args)
    > {
    > int twoarray[][] = new int[26][26];
    >
    > int offset = 0;
    > for(int i = 0; i<26; i++)
    > {

    [...]
    > }


    Your code already looks very efficient to me. Therefore I would not
    bother to make it faster.
    However, I have one suggestion not concerning efficiency, but concerning
    style. There are many so-called "magic" numbers (26 or 25) all over the
    place. You can get around this for example by defining a constant
    final static int N = 26;
    and then using that N instead of 26 (and N-1 instead of 25) in your code.


    --
    Thomas
    Thomas Fritsch, Feb 8, 2007
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Alf P. Steinbach
    Replies:
    0
    Views:
    434
    Alf P. Steinbach
    Aug 18, 2003
  2. John Harrison
    Replies:
    4
    Views:
    6,923
    Default User
    Aug 19, 2003
  3. Icosahedron
    Replies:
    8
    Views:
    651
    Vivek
    Aug 21, 2003
  4. Venkat
    Replies:
    4
    Views:
    972
    Venkat
    Dec 5, 2003
  5. Olumide
    Replies:
    6
    Views:
    742
    John Bode
    May 17, 2010
Loading...

Share This Page