Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   Calculating single-digit summands (http://www.velocityreviews.com/forums/t826857-calculating-single-digit-summands.html)

draq 12-11-2005 09:53 PM

Calculating single-digit summands
 
I have tried to make an algorithm that finds all possible combinations
of single-digit summands for a number. After an afternoon of hard and
desperate work I got something inefficient (although it works). Maybe
someone has a better idea. The link to the algorithm:
http://secam.blogspot.com/2005/12/so...ro-part-i.html


James Edward Gray II 12-12-2005 02:49 AM

Re: Calculating single-digit summands
 
On Dec 11, 2005, at 3:57 PM, draq wrote:

> I have tried to make an algorithm that finds all possible combinations
> of single-digit summands for a number. After an afternoon of hard and
> desperate work I got something inefficient (although it works). Maybe
> someone has a better idea. The link to the algorithm:
> http://secam.blogspot.com/2005/12/so...ro-part-i.html


One thing that your code could really use is better names. Variables
like "arr", "t", and even "calc" tell me very little, as I'm trying
to read you code.

Next, there's a lot more iterators than just each() and using them
can make your code more expressive. Some examples:

def sum (arr)
i = 0
arr.each do |k| i += k end
i
end

# ... or ...

def sum( enum )
inject { |sum, n| sum + n }
end

######

arrj.each do |a|
arri.delete(a) if sum(a) != number
end

# ... or ...

arrj.delete_if { |a| sum(a) != number }

You can also simplify lines like the following by using destructive
method calls:

arri = arri.uniq

# ... or ...

arri.uniq!

Hope that gives you some ideas.

James Edward Gray II




Dan Diebolt 12-12-2005 03:14 AM

Re: Calculating single-digit summands
 
--0-1690795590-1134357246=:46771
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

># ... or ...
>def sum( enum )
> inject { |sum, n| sum + n }
>end

=20
Don't you need enum. ?
=20
def sum(enum)
enum.inject {|sum,n| sum+n}
end

=09
---------------------------------
Yahoo! Shopping
Find Great Deals on Holiday Gifts at Yahoo! Shopping=20
--0-1690795590-1134357246=:46771--



James Edward Gray II 12-12-2005 03:18 AM

Re: Calculating single-digit summands
 
On Dec 11, 2005, at 9:14 PM, Dan Diebolt wrote:

>> # ... or ...
>> def sum( enum )
>> inject { |sum, n| sum + n }
>> end

>
> Don't you need enum. ?
>
> def sum(enum)
> enum.inject {|sum,n| sum+n}
> end


Oops. Yes. Thank you.

James Edward Gray II




All times are GMT. The time now is 07:02 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57