Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > rindex with array of arrays

Reply
Thread Tools

rindex with array of arrays

 
 
STEPHEN BECKER I V
Guest
Posts: n/a
 
      09-28-2004
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")
Do i need a string match type of thing?


####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


 
Reply With Quote
 
 
 
 
David A. Black
Guest
Posts: n/a
 
      09-28-2004
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
http://www.velocityreviews.com/forums/(E-Mail Removed)



 
Reply With Quote
 
 
 
 
STEPHEN BECKER I V
Guest
Posts: n/a
 
      09-28-2004
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 <(E-Mail Removed)> 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
> (E-Mail Removed)
>
>



 
Reply With Quote
 
STEPHEN BECKER I V
Guest
Posts: n/a
 
      09-29-2004
(a.split(//).concat(('a'..'z').to_a) - ["j"]).uniq.join
does not take care of white space .
split(/\s*/) does I dont know why but i kept tring slice and was
over looking split. Thank you again


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
problem making an array of arrays (of arrays) Cec Tre Ruby 3 03-19-2010 02:02 PM
Multidimensional arrays and arrays of arrays Philipp Java 21 01-20-2009 08:33 AM
Rindex used to find end of a string Paul.Lee.1971 Perl Misc 4 03-11-2007 03:02 PM
rindex with regexp trans. (T. Onoma) Ruby 2 12-28-2004 04:54 AM
Array::index and rindex operator Hadmut Danisch Ruby 22 07-08-2004 11:00 AM



Advertisments