One day i will program in a ruby way. I am searching the CHM file that
comes with the windows installer they only thing that has matrix is
"Math mode (fraction and matrix support is available)." under the IRB.
I am going to delete the CHM file and just use the
http://www.ruby-doc.org/stdlib/ pages. But the matrix class does not
seem to be useful for what i want. It would be good for linear
algebra. Thank you again for your help.

Stephen


On Tue, 28 Sep 2004 23:59:21 +0900, David A. Black <dblack / wobblini.net> wrote:
> Hi --
> 
> On Tue, 28 Sep 2004, STEPHEN BECKER I V wrote:
> 
> > Should rindex work for an array of arrays? I am starting the playfair
> > cypher, you get a key and append the alphabet to it then remove dups
> > and change J to I, then make that in to a matrix .
> >
> > mat[0].rindex("b") works right
> > but not
> > mat.rindex("b")
> 
> If mat is an array of arrays, then none of its elements are "b", so
> there will be no match there.
> 
> > Do i need a string match type of thing?
> 
> Maybe, but have you looked at the Matrix class?  I'm not sure, but it
> might have the kind of search mechanism you need.
> 
> > ####code
> > def removedup(a)   # i want to change a to an array then use uniq
> > b=('a'..'z').to_a
> > a<<b.to_s
> > a.gsub!("j","i")
> > a.gsub!(/\s/, '')
> >        loc=0
> >       while loc<a.size
> >
> >               for i in loc+1 .. a.size
> >                       a[i]='' if a[loc]==a[i]
> >               end
> >               loc+=1
> >       end
> >
> >       return a
> > end
> >
> > def makematrix(a)
> > count = 0
> >     mx = Array.new(5)
> >     for i in 0 .. (5 - 1)
> >       row = Array.new(5, 0)
> >       for j in 0 .. (5 - 1)
> >           row[j] = a[count].chr   #make a matrix of the letters in a
> >           count += 1
> >       end
> >       mx[i] = row
> >     end
> >     return mx
> > end
> >
> > print "Enter a key: "
> > a=gets.downcase
> >
> > print removedup(a)
> > tmat=makematrix(a)
> > print tmat.rindex("x") # will this work?
> > ####code
> 
> Slightly shorter version of your code (I think it does the same
> thing), just for fun :-)
> 
>   def removedup(a)
>     (a.split(//).concat(('a'..'z').to_a) - ["j"]).uniq.join
>   end
> 
>   def makematrix(a)
>     a.scan(/.{5}/).map {|row| row.split(//)}
>   end
> 
>   print "Enter a key: "
>   a=gets.downcase.chomp
> 
>   r = removedup(a)
>   puts r
>   tmat=makematrix(r)
>   p tmat
> 
> I haven't used Matrix, but again, you might want to look at that too.
> 
> David
> 
> --
> David A. Black
> dblack / wobblini.net
> 
>