The local commuter railroad services a number of towns in Kiwiland. Because of monetary concerns, all of the tracks are ''one-way.'' That is, a route from Kaitaia to Invercargill does not imply the existence of a route from Invercargill to Kaitaia. In fact, even if both of these routes do happen to exist, they are distinct and are not necessarily the same distance! My problem is how to computer the number of trips between two station with exactly some stops,for example ,A to C with exactly 4stops. In the sample data below, there are three such trips: A to C (via B,C,D); A to C (via D,C,D); and A to C (via D,E,B). For the test ,the towns are named using the first few letters of the alphabet from A to D. A route between two towns (A to B) with a distance of 5 is represented as AB5. Graph: AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7 Expected Output: Output #7: 3 My controller method is below,but i know it is wrong,how do i write it to make it work?Thank you! def exa_with_stops(s1,s2,esn) pair_group=find_route(s1,s2) for p in pair_group if p[1,1]==[2,1] $i=2+$n*2 elsif Route.find_by_name(p[1,1]+p[2,1]) $i=3+$n*2 else $i=2+$n*2 end end $n+=1 if $i<esn for p in pair_group exa_with_stops(s1,s2,esn) end else $i==esn end end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Looks suspiciously like an instance of the pattern "do my thoughtworks code review for me" Almost word for word.... ;-) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
hello: I do not know the pattern you referenced.Can you help me to complete that method? def exa_with_stops(s1,s2,esn) pair_group=find_route(s1,s2) for p in pair_group if p[1,1]==[2,1] $i=2+$n*2 elsif Route.find_by_name(p[1,1]+p[2,1]) $i=3+$n*2 else $i=2+$n*2 end end $n+=1 if $i<esn for p in pair_group exa_with_stops(s1,s2,esn) end else $i==esn end end dafydd wrote:> Looks suspiciously like an instance of the pattern "do my thoughtworks > code review for me" > > Almost word for word.... > > > ;-)-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Guo Yangguang
2008-Jan-21 07:43 UTC
how to find exactly number of diffrent route for two station
hello: The following is my task: The local commuter railroad services a number of towns in Kiwiland. Because of monetary concerns, all of the tracks are ''one-way.''That is, a route from Kaitaia to Invercargill does not imply the existence of a route from Invercargill to Kaitaia. In fact, even if both of these routes do happen to exist, they are distinct and are not necessarily the same distance! My task is how to computer the number of trips between two station with exactly some stops,for example ,A to C with exactly 4stops. In the sample data below, there are three such trips: A to C (via B,C,D); A to C (via D,C,D); and A to C (via D,E,B). For the test ,the towns are named using the first few letters of the alphabet from A to D. A route between two towns (A to B) with a distance of 5 is represented as AB5. Graph: AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7 I have design my method,but it works only for some situation.For example,the route number for A to E with exactly x stops:the result for 1 or 2 or 3 or 4 stops is right,but for 5 or 6 or...,the result is wrong,they all are zero:0. The following are my methods.By the way,my model is Route in which i can get the route_name,distance,start_station,end_station.For example,AE route have the attribute:route_name="AE",distance=5,start_station="A",end_station="B".The Route model works fine for my other method,so i did not paste the model code here.Please help me to find where are wrong?Thank you very much! def exa_stops #this @stops=params[:exastops].to_i if @stops==1 onestop_route=route_with_onestop(params[:ss1],params[:es1]) if onestop_route @exa_stops_number=1 else @exa_stops_number=0 end else l=exa_with_stops(params[:ss1],params[:es1],@stops).length @exa_stops_number=l end end private def find_route(s1,s2) start_routes=Route.find_all_by_start_station(s1) end_routes=Route.find_all_by_end_station(s2) middle_array=Array.new for s in start_routes for e in end_routes middle_array<<s.name+e.name end end pair_group=middle_array if pair_group.length !=0 for p in pair_group pair_group.delete(p) if p[2,1]=="A" end return pair_group end end def route_with_onestop(s1,s2) Route.find_by_name(s1+s2) end def exa_with_stops(s1,s2,esn) if esn==2 || esn==3 @exastops_array=Array.new @pair_group=find_route(s1,s2) for p in @pair_group if p[1,1]==p[2,1] @exastops_array<<2 end if Route.find_by_name(p[1,1]+p[2,1]) @exastops_array<<3 end @part_of_exastops_array=Array.new @exastops_array.each {|e| @part_of_exastops_array<<e if e==esn} end else @n=1 @exastops_array=Array.new @pair_group=find_route(s1,s2) @middle_array=@pair_group @exaroutes_array=Array.new if (esn%2)==0 @i=esn/2 else @i=(esn-1)/2 end while(@n<@i) for m in @middle_array @exaroutes_array=@exaroutes_array+find_route(m[1,1],m[2,1]) end for e in @exaroutes_array if e[1,1]==e[2,1] s=2+2*@n @exastops_array<<s end if Route.find_by_name(e[1,1]+e[2,1]) s=3+2*@n @exastops_array<<s end end @middle_array=@exaroutes_array @exaroutes_array.clear @n+=1 end if @n==@i @part_of_exastops_array=Array.new @exastops_array.each {|e| @part_of_exastops_array<<e if e==esn} end end return @part_of_exastops_array end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Guo Yangguang
2008-Jan-21 11:00 UTC
Re: how to find exactly number of diffrent route for two station
I manage it with another method ,but i is still wrong.The code is: def exa_stops exa_with_stops(params[:ss1],params[:es1],params[:stops],0) end private def find_route(s1,s2) start_routes=Route.find_all_by_start_station(s1) end_routes=Route.find_all_by_end_station(s2) middle_array=Array.new for s in start_routes for e in end_routes middle_array<<s.name+e.name end end pair_group=middle_array if pair_group.length !=0 for p in pair_group pair_group.delete(p) if p[2,1]=="A" end return pair_group end end def route_with_onestop(s1,s2) Route.find_by_name(s1+s2) end def exa_with_stops(s1,s2,esn,n) if $exastops_array.include?(esn) @part_of_exastops_array=Array.new $exastops_array.each{|e|@part_of_exastops_array<<e if e==esn} return @part_of_exastops_array.length else pair_group=find_route(s1,s2) @n=n for p in pair_group if p[1,1]==p[2,1] s=2+@n*2 $exastops_array<<s exa_with_stops(p[1,1],p[2,1],esn,@n+1) elsif Route.find_by_with_name(p[1,1]+p[2,1]) s=3+@n*2 $exastops_array<<s exa_with_stops(p[1,1],p[2,1],esn,@n+1) else exa_with_stops(p[1,1],p[2,1],esn,@n+1) end end end end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Keynan Pratt
2008-Jan-21 12:15 UTC
Re: how to find exactly number of diffrent route for two sta
You may want to start over with some heavy BDD. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Guo Yangguang
2008-Jan-21 12:42 UTC
Re: how to find exactly number of diffrent route for two sta
I do not know your means.Anyone can help me? Keynan Pratt wrote:> You may want to start over with some heavy BDD.-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Keynan Pratt
2008-Jan-21 13:00 UTC
Re: how to find exactly number of diffrent route for two sta
http://www.youtube.com/watch?v=oOFfHzrIDPk&feature=related -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Keynan Pratt
2008-Jan-21 13:08 UTC
Re: how to find exactly number of diffrent route for two sta
You should be able to modify this pretty easily to get you the routes from any given starting point to any given ending point at a set distance. Lets assume this is rails and not just ruby Were working with. # class Station < ActiveRecord::Base has_and_belongs_to_many :stations_ahead, :class_name => ''Station'', :foreign_key => :beginning_station_id, :association_foreign_key => :ending_station_id def find_routes(destination, distance) return false if self == destination and distance > 0 return [[ self ]] if self == destination return false if distance <= 0 result = false stations_ahead.each do |station| sub_routes = station.find_routes(destination, distance-1) if sub_routes sub_routes.each do |sub_route| sub_route.push self end result = sub_ruoutes end end return result end end class TrainTrack < ActiveRecord::Base # # Has Feilds: # beginning_station_id # ending_station_id # end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Guo Yangguang
2008-Jan-22 04:16 UTC
Re: how to find exactly number of diffrent route for two sta
hello: Thank you!But i want to resolve this problem:the number of different route from one station to another station with exactly some stops. My model is Route in which i can get the route_name,distance,start_station,end_station.For example,AE route have the attribute:route_name="AE",distance=5,start_station="A",end_station="B". -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ryan Bigg
2008-Jan-22 04:22 UTC
Re: how to find exactly number of diffrent route for two sta
Guo, How about setting up a table of the stations and then a table of the routes that has a serialized field containing the ids of the stops along the way (something like stops_id)? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Guo Yangguang
2008-Jan-23 12:30 UTC
Re: how to find exactly number of diffrent route for two sta
hello: Thank you Ryan Bigg and Keynan Pratt ,i have resolve my question.Maby if i modify my database table ,i can do it .I will try it.I have managed it in my method design in another way.Thank you!Good luck! Ryan Bigg wrote:> Guo, > > How about setting up a table of the stations and then a table of the > routes > that has a serialized field containing the ids of the stops along the > way > (something like stops_id)?-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---