[#379166] question: threads behaviour — Raphael Bauduin <rblists@...>

Hi,

14 messages 2011/03/01

[#379190] exec using sh -c or directly running the command, depending on the system — Xavier No謖le <xavier.noelle@...>

Hello !

8 messages 2011/03/01

[#379261] How can i get the first letter of this string — duc nguyen <minhduct4@...>

Hello, i'm a newbie. I have a question that how can i get the first

10 messages 2011/03/03

[#379285] Extracting the shortest string from an array — Iñaki Baz Castillo <ibc@...>

Hi, given the following array:

12 messages 2011/03/03

[#379299] How to assign an element to a hash only if its value is not nil? — "Thomas W." <thomas@...>

hash = {}

13 messages 2011/03/03

[#379327] extconf.rb spitting out SH Makefile on windows? — Mr Eiland <mreiland1978@...>

Title says it all, I'm running ruby extconf.rb in a visual studio 2008

18 messages 2011/03/03
[#379883] Re: extconf.rb spitting out SH Makefile on windows? — Luis Lavena <luislavena@...> 2011/03/15

On Mar 15, 3:09=A0am, Mr Eiland <mreiland1...@yahoo.com> wrote:

[#379410] Ruby - Missed some core computer science world ? — Lucky Dev <lucky.developer@...>

I am doing ruby programming and been developing rails3 apps for some

16 messages 2011/03/06

[#379423] How to get class of BasicObject ancestor (Ruby 1.9.2)? — Alexey Petrushin <axyd80@...>

There's no :class method on BasicObject, is there any way to get class

9 messages 2011/03/06

[#379430] (ArgumentError) - in `initialize': wrong number of arguments (4 for 0) — Micah Wolfe <52w7te9ara@...>

Greetings all,

12 messages 2011/03/06

[#379469] basic programming question, help please — Kaye Ng <sbstn26@...>

class Square

17 messages 2011/03/07
[#379471] Re: basic programming question, help please — Mayank Kohaley <mayank.kohaley@...> 2011/03/07

The class method in Ruby is represented using self.<method name> or <class

[#379487] http post and authorization header for twitter — boo boo <s.w.timko@...>

I am trying to send an authorization header to the twitter api

16 messages 2011/03/07

[#379524] Duplicate methods removal in Ruby's TODO ? — David Unric <dunric29a@...>

Hi,

15 messages 2011/03/08

[#379597] Comparison between C++ and Ruby Variables — "Mayank K." <mayank.kohaley@...>

I have blogged about the comparison between c++ and ruby variables and

10 messages 2011/03/09

[#379686] What do you use with Ruby for GUI programming and why? — Robert <sigzero@...>

Is there a push to one toolkit or the other?

29 messages 2011/03/11
[#379713] Re: What do you use with Ruby for GUI programming and why? — Steve Klabnik <steve@...> 2011/03/11

I use Shoes. I'm biased; I'm one of the maintainers.

[#379715] Re: What do you use with Ruby for GUI programming and why? — Shadowfirebird <shadowfirebird@...> 2011/03/11

> I use Shoes. I'm biased; I'm one of the maintainers.

[#379755] send() with a block? — 7stud -- <bbxx789_05ss@...>

Why don't the ruby docs say that send() can take a block?

23 messages 2011/03/12
[#379756] Re: send() with a block? — "Sean O'Halpin" <sean.ohalpin@...> 2011/03/12

On Sat, Mar 12, 2011 at 8:45 PM, 7stud -- <bbxx789_05ss@yahoo.com> wrote:

[#379757] Re: send() with a block? — Peter Zotov <whitequark@...> 2011/03/12

On Sun, 13 Mar 2011 06:01:31 +0900, Sean O'Halpin wrote:

[#379845] Ruby jobs — Toby Gambill <toby.gambill@...>

All=20

25 messages 2011/03/14

[#379846] Understanding YAML and this practice in general — Fily Salas <fs_tigre@...>

Hi,

12 messages 2011/03/15

[#379889] SHA1 Decryption!! — Gormare Kalss <gormare@...>

Hello! I hope that no one will be offended by this question!! Ive been

12 messages 2011/03/15

[#379945] TCPSocket: how to realize that the other endpoint has closed the connection? — Iñaki Baz Castillo <ibc@...>

Hi, I open a TCP connection with a server:

10 messages 2011/03/16

[#379998] Inserting hash value slows down as table gets larger — Philip Rhoades <phil@...>

People,

11 messages 2011/03/17

[#380037] matching a word in any number of characters — Chad Perrin <code@...>

I have need of some code to match any of a number of words in any number

12 messages 2011/03/18

[#380074] Method Call from inside a file. — Tridib Bandopadhyay <tridib04@...>

I coded a new method within gc.c file defining as--

11 messages 2011/03/19

[#380085] A question about Ruby 1.9's "external encoding" — Albert Schlef <albertschlef@...>

I have the following program:

11 messages 2011/03/20

[#380116] The best practices to learn Ruby — Fily Salas <fs_tigre@...>

Hi,

22 messages 2011/03/20

[#380205] How could I make the Ruby 1.9 string ignore the invalid utf-8 byte sequence in split? — Stanley Xu <wenhao.xu@...>

Dear buddies,

8 messages 2011/03/22

[#380220] Ruby corrupts after a period of time — Chip Burke <cburke@...>

I have recently upgraded from Ruby 1.8.7 to 1.9.2p180 on Fedora. After a

19 messages 2011/03/22

[#380262] Converting PHP to Ruby — "Jack W." <jack.whitman403@...>

Hi all,

13 messages 2011/03/23

[#380306] shortcut for add unless nil ? — Iain Barnett <iainspeed@...>

Hi,

24 messages 2011/03/24
[#380308] Re: shortcut for add unless nil ? — Xavier Noria <fxn@...> 2011/03/24

You could do something like this (untested):

[#380339] Re: shortcut for add unless nil ? — Iain Barnett <iainspeed@...> 2011/03/25

[#380347] Re: shortcut for add unless nil ? — Robert Klemme <shortcutter@...> 2011/03/25

On Fri, Mar 25, 2011 at 7:02 AM, Iain Barnett <iainspeed@gmail.com> wrote:

[#380369] Re: shortcut for add unless nil ? — Colin Bartlett <colinb2r@...> 2011/03/25

On Fri, Mar 25, 2011 at 7:52 AM, Robert Klemme

[#380382] Re: shortcut for add unless nil ? — Iain Barnett <iainspeed@...> 2011/03/25

[#380385] Re: shortcut for add unless nil ? — Robert Klemme <shortcutter@...> 2011/03/25

On Fri, Mar 25, 2011 at 4:42 PM, Iain Barnett <iainspeed@gmail.com> wrote:

[#380389] Re: shortcut for add unless nil ? — Iain Barnett <iainspeed@...> 2011/03/25

[#380394] Re: shortcut for add unless nil ? — serialhex <serialhex@...> 2011/03/25

...personally i think it would be nice to be able to define new operators

[#380325] Regexp, matching only the content within parentheses — Emil Kampp <ekampp@...>

Hi.

12 messages 2011/03/24

[#380359] How to get the value of a singleton class? — Joey Zhou <yimutang@...>

Here is a sample code:

14 messages 2011/03/25
[#380360] Re: How to get the value of a singleton class? — Robert Dober <robert.dober@...> 2011/03/25

On Fri, Mar 25, 2011 at 1:23 PM, Joey Zhou <yimutang@gmail.com> wrote:

[#380361] Do I need to upgrade to the latest version of Ruby — Fily Salas <fs_tigre@...>

Hi,

10 messages 2011/03/25

[#380368] Dynamic classes — PsiPro <arjesins@...>

So I am working on some metaprograming and have some questions about

13 messages 2011/03/25

[#380401] How to "find" new lines — Damir Sigur <damir@...>

I am new to ruby, and was trying to make a small code which would check

12 messages 2011/03/25

[#380520] A two-minute Ruby flavoured survey to help shape a new service. — "Mic P." <micpringle@...>

Please take a few seconds to fill out the following survey ...

12 messages 2011/03/28
[#380528] Re: A two-minute Ruby flavoured survey to help shape a new service. — Chad Perrin <code@...> 2011/03/28

On Tue, Mar 29, 2011 at 03:46:17AM +0900, Mic P. wrote:

[#380558] Why can a floating point number be used as an array index? — Jeff Dik <s450r1@...>

Why can a floating point number be used as an array index? Anybody

11 messages 2011/03/29

[#380573] Encoding issues when parsing HTML in 1.9 — ctdev <ctdev421@...>

Hi, I'm having some encoding problems while parsing HTML with Nokogiri

12 messages 2011/03/30

[#380586] functional paradigm taking over — Robert Klemme <shortcutter@...>

Hi,

133 messages 2011/03/30
[#380593] Lambda Shambda — Mike Stephens <rubfor@...> 2011/03/30

Although a Ruby fan, I must say I'm spending all my time looking at

[#380612] Re: Lambda Shambda — Chad Perrin <code@...> 2011/03/30

On Wed, Mar 30, 2011 at 06:38:19PM +0900, Mike Stephens wrote:

[#380617] Re: Lambda Shambda — Robert Klemme <shortcutter@...> 2011/03/30

On Wed, Mar 30, 2011 at 4:49 PM, Chad Perrin <code@apotheon.net> wrote:

[#380641] Re: Lambda Shambda — Chad Perrin <code@...> 2011/03/30

On Thu, Mar 31, 2011 at 12:19:25AM +0900, Robert Klemme wrote:

[#380664] Re: Lambda Shambda — Phillip Gawlowski <cmdjackryan@...> 2011/03/31

On Thu, Mar 31, 2011 at 1:24 AM, Chad Perrin <code@apotheon.net> wrote:

[#380669] Re: Lambda Shambda — Chad Perrin <code@...> 2011/03/31

On Thu, Mar 31, 2011 at 12:30:07PM +0900, Phillip Gawlowski wrote:

[#380683] Re: Lambda Shambda — Mike Stephens <rubfor@...> 2011/03/31

Chad Perrin wrote in post #990130:

[#380812] Re: Lambda Shambda — Josh Cheek <josh.cheek@...> 2011/04/02

On Thu, Mar 31, 2011 at 5:08 AM, Mike Stephens <rubfor@recitel.net> wrote:

[#380825] Re: Lambda Shambda — Mike Stephens <rubfor@...> 2011/04/03

Josh Cheek wrote in post #990579:

[#380831] Re: Lambda Shambda — Phillip Gawlowski <cmdjackryan@...> 2011/04/03

On Sun, Apr 3, 2011 at 7:29 AM, Mike Stephens <rubfor@recitel.net> wrote:

[#380839] Re: Lambda Shambda — Everett L Williams II <rett@...> 2011/04/03

*Let's not pay too much attention to the code snobs on here. I've yet to

[#380840] Re: Lambda Shambda — Phillip Gawlowski <cmdjackryan@...> 2011/04/03

On Sun, Apr 3, 2011 at 2:17 PM, Everett L Williams II

[#380893] Re: functional paradigm taking over — Mike Stephens <rubfor@...> 2011/04/04

This thread has been touching upon three issues - functional languages

[#380907] Re: functional paradigm taking over — Everett L Williams II <rett@...> 2011/04/04

*Mike,*

[#380910] Re: functional paradigm taking over — Johnny Morrice <spoon@...> 2011/04/04

> But, as I have said, I have seen some absolutely

[#380913] Re: functional paradigm taking over — Johnny Morrice <spoon@...> 2011/04/04

> I've seen some absolutely amazing things done with befunge! Networked

[#380925] Re: functional paradigm taking over — Chad Perrin <code@...> 2011/04/04

On Mon, Apr 04, 2011 at 09:29:13PM +0900, Johnny Morrice wrote:

[#380926] Re: functional paradigm taking over — Johnny Morrice <spoon@...> 2011/04/04

> I have not seen "befunge" as a euphemism for brainfuck before. Is

[#380933] Re: functional paradigm taking over — Chad Perrin <code@...> 2011/04/04

On Tue, Apr 05, 2011 at 12:42:20AM +0900, Johnny Morrice wrote:

[#381261] Re: functional paradigm taking over — Robert Dober <robert.dober@...> 2011/04/10

On Mon, Apr 4, 2011 at 8:07 PM, Chad Perrin <code@apotheon.net> wrote:

[#381324] Re: functional paradigm taking over — Kevin <darkintent@...> 2011/04/12

Aren't all programs languages as the program describes a particular problem

[#381330] Re: functional paradigm taking over — Phillip Gawlowski <cmdjackryan@...> 2011/04/12

On Tue, Apr 12, 2011 at 8:18 AM, Kevin <darkintent@gmail.com> wrote:

[#381331] Re: functional paradigm taking over — Kevin <darkintent@...> 2011/04/12

No I'm not confusing them, all programs provide the vocabulary (Means of

[#381356] Re: functional paradigm taking over — Chad Perrin <code@...> 2011/04/12

On Tue, Apr 12, 2011 at 04:47:17PM +0900, Kevin wrote:

[#381400] Re: functional paradigm taking over — Kevin <darkintent@...> 2011/04/13

Why don't you actually go take a look at the definition of language,

[#381401] Re: functional paradigm taking over — Josh Cheek <josh.cheek@...> 2011/04/13

On Wed, Apr 13, 2011 at 12:53 AM, Kevin <darkintent@gmail.com> wrote:

[#381403] Re: functional paradigm taking over — Kevin <darkintent@...> 2011/04/13

That is all well and good. But does that fact make the definitions I am

[#381408] Re: functional paradigm taking over — Phillip Gawlowski <cmdjackryan@...> 2011/04/13

On Wed, Apr 13, 2011 at 8:38 AM, Kevin <darkintent@gmail.com> wrote:

[#380623] string/array slices — Patrick Tyler <patrick.a.tyler@...>

Hello,

15 messages 2011/03/30

[#380689] how to refine the code to avoid using fork on windows? — Ethan Huo <firewall888@...>

here is the thing, i need to move a previous ruby program from Linux to

9 messages 2011/03/31

[#380710] Simple array.each do |x| question — "Kyle X." <haebooty@...>

Hello, I am new to ruby and cannot understand why this code is not

18 messages 2011/03/31
[#380711] Re: Simple array.each do |x| question — Roger Braun <roger@...> 2011/03/31

Hi

Re: Nil can't be coerced into Fixnum (TypeError)

From: Mayank Kohaley <mayank.kohaley@...>
Date: 2011-03-24 07:09:52 UTC
List: ruby-talk #380290
Nice I dint know about the Prime class available in stdlib. Thanks a lot..
:)

--Mayank

On Thu, Mar 24, 2011 at 8:34 AM, serialhex <serialhex@gmail.com> wrote:

> hey all,
>  so while Jesus's implementation works, unless you want to implement a
> prime number generator yourself you're probably better off using Rubys
> built-in Prime class (doc here: http://rdoc.info/stdlib/prime/1.9.2/frame=
s)
> to do this.  not only does it give you cleaner code, it is SIGNIFICANTLY
> faster.
>
> # the spiffified code
> require 'prime' # you're gonna need this
> require 'mathn' # you're gonna want this
>
> class PrimeFactor
>  def initialize(number)
>    @number =3D number
>  end
>
>  def primeFactors
>    @factors =3D Prime.prime_division(@number,
> Prime::TrialDivisionGenerator.new).flatten.uniq.sort.join(', ')
>  end
>
> end
>
> #prime =3D PrimeFactor.new(13195)
> prime =3D PrimeFactor.new(ARGV.shift.to_i)
> puts "#{prime.primeFactors}"
>
> in fact, benchmarking the two thusly:
>
> # the benchmark code:
> require 'prime' # you're gonna need this
> require 'mathn' # you're gonna want this
>
> require 'benchmark'
>
> class PrimeFactor_Long
>  def initialize(number)
>    @number =3D number
>  end
>
>  def primeFactors
>    factors =3D Array.new
>    (2..@number).each do |num|
>      if ( @number % num =3D=3D 0 )
>        factors.insert(factors.length,num)
>      end
>    end
>    # p factors
>    factors.each do |factor|
>      next if factor.nil?
>      factors.each_with_index do |candidate,i|
>        next if candidate =3D=3D factor
>        next if candidate.nil?
>        factors[i] =3D nil if candidate % factor =3D=3D 0
>      end
>    end
>    factors.compact.join(',')
>  end
> end
>
> class PrimeFactor_Shrt
>  def initialize(number)
>    @number =3D number
>  end
>
>  def primeFactors
>    factors =3D Prime.prime_division(@number,
> Prime::TrialDivisionGenerator.new).flatten.uniq.sort.join(', ')
>  end
>
> end
>
> lots =3D 13195
>
> bunches_of =3D 1_000
>
> Benchmark.bmbm do |x|
>  x.report('Long') do
>    bunches_of.times do
>      long =3D PrimeFactor_Long.new lots
>      long.primeFactors
>    end
>  end
>  x.report('Shrt') do
>    bunches_of.times do
>      shrt =3D PrimeFactor_Shrt.new lots
>      shrt.primeFactors
>    end
>  end
> end
>
> puts
>
> long =3D PrimeFactor_Long.new lots
> puts "long factors: #{long.primeFactors}"
>
> shrt =3D PrimeFactor_Shrt.new lots
> puts "shrt factors: #{long.primeFactors}"
>
>
> gives this:
> serialhex@livecd:~/src/test> ruby bench_prime.rb
> Rehearsal ----------------------------------------
> Long   3.160000   0.070000   3.230000 (  3.523138)
> Shrt   0.050000   0.000000   0.050000 (  0.070737)
> ------------------------------- total: 3.280000sec
>
>           user     system      total        real
> Long   3.010000   0.030000   3.040000 (  3.227173)
> Shrt   0.060000   0.000000   0.060000 (  0.070470)
>
> long factors: 5,7,13,29
> shrt factors: 5,7,13,29
>
> no joke... it's more than 50x faster :P  so yeah, unless this is a projec=
t
> for a class or something, use the included Prime class!
> hex
>
>
>
>
> 2011/3/23 Jes=FAs Gabriel y Gal=E1n <jgabrielygalan@gmail.com>
>
> > On Wed, Mar 23, 2011 at 10:57 AM, Mayank K. <mayank.kohaley@gmail.com>
> > wrote:
> > > I am trying to execute the following code and it seems like the array
> is
> > > going out of bounds. Let me know where am I going wrong.
> > >
> > > class PrimeFactor
> > >  def initialize(number)
> > >    @number =3D number
> > >  end
> > >
> > >  def primeFactors
> > >    factors =3D Array.new
> > >    (2..Math.sqrt(@number).ceil).each do |num|
> > >      if ( @number % num =3D=3D 0 )
> > >        factors.insert(factors.length,num)
> > >      end
> > >    end
> > >    (0...factors.length).each do |i|
> > >      prime =3D factors[i]
> > >      factors =3D factors.select { |x| x =3D=3D prime || x % prime !=
=3D0 }
> > >    end
> > >
> > >    factors.compact.join(',')
> > >  end
> > > end
> > >
> > > prime =3D PrimeFactor.new(13195)
> > > puts "#{prime.primeFactors}"
> > >
> > > C:\Temp\Study\Ruby>ruby --version
> > > ruby 1.8.7 (2011-02-18 patchlevel 334) [i386-mingw32]
> > >
> > > C:\Temp\Study\Ruby>ruby prime.rb
> > > prime.rb:16:in `%': nil can't be coerced into Fixnum (TypeError)
> > >        from prime.rb:16:in `primeFactors'
> > >        from prime.rb:16:in `select'
> > >        from prime.rb:16:in `primeFactors'
> > >        from prime.rb:14:in `each'
> > >        from prime.rb:14:in `primeFactors'
> > >        from prime.rb:24
> >
> > The problem with your code is that you are modifying the factors array
> > inside a precalculated iteration. Try adding some print statements in
> > the last loop you'll see what's going on:
> >
> > [... snip...]
> > p factors.length
> > (0...factors.length).each do |i|
> >   p factors
> >   p i
> >  prime =3D factors[i]
> >  factors =3D factors.select { |x| x =3D=3D prime || x % prime !=3D0 }
> > end
> >
> > As you'll see, you are modifying the array, but the each loop is still
> > going from 0 to 7. Another approach could be to set to nil the
> > multiples of each factor, and then compact:
> >
> > factors.each do |factor|
> >  next if factor.nil?
> >  factors.each_with_index do |candidate,i|
> >    next if candidate =3D=3D factor
> >    factors[i] =3D nil if candidate % factor =3D=3D 0
> >  end
> > end
> >
> > BTW, your logic about the Math.sqrt being the top possible factor is
> > wrong (that's used to know if a number is prime). For example, for 15,
> > Math.sqrt(15) is less than 4, and 5 is a factor of 15 which your logic
> > will skip. All in all, this works:
> >
> > class PrimeFactor
> >        def initialize(number)
> >                @number =3D number
> >        end
> >
> >        def primeFactors
> >                factors =3D Array.new
> >                 (2..@number).each do |num|
> >                         if ( @number % num =3D=3D 0 )
> >                                factors.insert(factors.length,num)
> >                        end
> >                end
> >                 p factors
> >                factors.each do |factor|
> >                        next if factor.nil?
> >                        factors.each_with_index do |candidate,i|
> >                                next if candidate =3D=3D factor
> >                                next if candidate.nil?
> >                                factors[i] =3D nil if candidate % factor=
 =3D=3D
> 0
> >                        end
> >                 end
> >                factors.compact.join(',')
> >        end
> > end
> >
> > #prime =3D PrimeFactor.new(13195)
> > prime =3D PrimeFactor.new(ARGV.shift.to_i)
> > puts "#{prime.primeFactors}"
> >
> > Maybe it can be further optimized, but you can start from here. This
> > is the ouput for 13195:
> >
> > $ ruby prime_factors.rb 13195
> > [5, 7, 13, 29, 35, 65, 91, 145, 203, 377, 455, 1015, 1885, 2639, 13195]
> > 5,7,13,29
> >
> > Jesus.
> >
> >
>



--=20
Mayank Kohaley

In This Thread

Prev Next