[#3986] Re: Principle of least effort -- another Ruby virtue. — Andrew Hunt <andy@...>

> Principle of Least Effort.

14 messages 2000/07/14

[#4043] What are you using Ruby for? — Dave Thomas <Dave@...>

16 messages 2000/07/16

[#4139] Facilitating Ruby self-propagation with the rig-it autopolymorph application. — Conrad Schneiker <schneik@...>

Hi,

11 messages 2000/07/20

[ruby-talk:03871] Re: modulo and remainder

From: "Judi Roy / Camile Hamel" <royhamel@...>
Date: 2000-07-06 14:04:34 UTC
List: ruby-talk #3871
----- Original Message -----
From: "Yukihiro Matsumoto" <matz@netlab.co.jp>
To: "ruby-talk ML" <ruby-talk@netlab.co.jp>
Sent: Monday, July 03, 2000 10:44 PM
Subject: [ruby-talk:03787] Re: modulo and remainder


> Hi,
>
> In message "[ruby-talk:03779] Re: modulo and remainder"
>     on 00/07/04, Tadayoshi Funaba <tadf@kt.rim.or.jp> writes:
>
> |I wrote a method jd_to_wday in date2.rb like this:
> |
> |    def jd_to_wday(jd) (jd + 1) % 7 end
> |
> |It calculates the day of week of the given the Julian day number.
> |I used % and it must be modulo.  So it works even if jd is -ve.
>

>
> It reflects the author's weakpoint.  Even if you don't need that
> (weakness in mathematical field?), I can't do the right thing without
> YOUR help.  Enlighten me, please.
>
> matz.

Hi,

I'm very much a newbie programmer and don't pretend to be able to follow
most of the postings.
Am I right in assuming matz is looking for mathematical info on 'modulo' and
'remainder' ,if so, I offer the following excerpt from page 123 of the book
"Mathematics From the Birth of Numbers" by Jan Gullberg published by W. W.
Norton & Company:

"Modular Arithmetic

Calculations with remainders, or residues, is convenient for handling large
numbers.  This arithmetic, formalized by Carl Friedrich Gauss, is called
modular arithmetic or arithmetic of residue classes.

We say "a is congruent to b, modulo c", and write
a # b, mod c                                            (note '#' should be
three parallel lines, I did not know how to do so properly)
when b - a is a multiple of c.                (note: it appears this should
be a - b, I did not want to change the quoted material)

For instance,
10 # 1, mod 9;      100 # 10, mod 9;            1000 # 1, mod 9;  ...,
(see note above re '#')
10 # 2, mod 8;      100 # 4, mod 8;              1000 # 0, mod 8;  ...,
because 10 - 1;  100 - 10;   1000 - 1  and 10 - 2;  100 - 4;  1000 - 0 are
all multiples of respectively, 9 and 8.

The following calcualtion rules hold:
If
a1 # b1, mod c;  a2 # b2, mod c,              (see note above re '#')
then
a1 + a2 # b1 + b2, mod c
a1 - a2 # b1 - b2, mod c
a1 x a2 # b1 x b2, mod c.                         (note: x refers to times
and/or multiplication)

Find the least integer remainder of
(12345 x 123456 x 1234567) / 11.
Instead of multiplying out the product, replace each factor by its remainder
when divided by 11.
We have, modulo 11,
12345 # 3;         123456 # 3;     1234567 # 4,                      (see
note above re '#')
and find
12345 x 123456 x 1234567 # 3 x 3 x 4 # 36 # 3, mod 11.
The sought remainder is 3."

I apologize if my posting is out of line and/or inappropriate.
I am certainly unable to judge any programming language, Ruby or otherwise,
but the people posting to this group are very impressive both as to their
community spirit and their programming knowledge.

Regards,
Cam


In This Thread