Этюд, устный счет
От: hexamino http://hexamino.blogspot.com/
Дата: 20.08.09 17:31
Оценка: 2 (2) :)
Вычислите в уме, что напечатает программа:

using System;

class Program
{
  static void Main()
  {
    Console.WriteLine(long.MaxValue % int.MaxValue);
    Console.WriteLine(long.MaxValue % short.MaxValue);
  }
}
Re: Этюд, устный счет
От: Kore Sar  
Дата: 21.08.09 11:46
Оценка:
Здравствуйте, hexamino, Вы писали:

H>Вычислите в уме, что напечатает программа:


H>
H>using System;

H>class Program
H>{
H>  static void Main()
H>  {
H>    Console.WriteLine(long.MaxValue % int.MaxValue);
H>    Console.WriteLine(long.MaxValue % short.MaxValue);
H>  }
H>}
H>


Честно в уме показалось что 0 и 0. Да?
Re[2]: Этюд, устный счет
От: hexamino http://hexamino.blogspot.com/
Дата: 21.08.09 11:48
Оценка:
Здравствуйте, Kore Sar, Вы писали:

KS>Честно в уме показалось что 0 и 0. Да?

неа
Re: Этюд, устный счет
От: APyro Украина  
Дата: 21.08.09 13:10
Оценка:
Здравствуйте, hexamino, Вы писали:

h> Вычислите в уме, что напечатает программа:


Console.WriteLine(long.MaxValue % int.MaxValue);

=int.MaxValue

Console.WriteLine(long.MaxValue % short.MaxValue);

= int.MaxValue * short.MaxValue
avalon 1.0rc2 rev 272
Re[2]: Этюд, устный счет
От: hexamino http://hexamino.blogspot.com/
Дата: 21.08.09 13:13
Оценка:
Здравствуйте, APyro, Вы писали:

AP>=int.MaxValue

остаток должен быть меньше делителя, разве не так?
Re[3]: Этюд, устный счет
От: APyro Украина  
Дата: 21.08.09 13:28
Оценка:
Здравствуйте, hexamino, Вы писали:

h> AP>=int.MaxValue


h> остаток должен быть меньше делителя, разве не так?

нда, опять не внимательно условие прочитал.

заинтересовался, решил перепроверить.
результаты увидел и хотел бы пояснений

long 64b — int 32b — short 16b
соотношение размера 4 — 2 — 1
avalon 1.0rc2 rev 272
Re[2]: Этюд, устный счет
От: Smarty Россия  
Дата: 21.08.09 17:28
Оценка:
Здравствуйте, Kore Sar, Вы писали:

KS>Здравствуйте, hexamino, Вы писали:


H>>Вычислите в уме, что напечатает программа:


H>>
H>>using System;

H>>class Program
H>>{
H>>  static void Main()
H>>  {
H>>    Console.WriteLine(long.MaxValue % int.MaxValue);
H>>    Console.WriteLine(long.MaxValue % short.MaxValue);
H>>  }
H>>}
H>>


KS>Честно в уме показалось что 0 и 0. Да?


Те же грабли. Однако это было бы правильным если бы у всех типов участвующих в фокусе впереди стояла маленькая буква u. А так — они ж знаковые, собаки. Не с F, а с 7-ки начинаются(в старшем разряде). В общем жду отгадку — как ТАКОЕ в уме просчитывать. Автор — шаман?
Re[3]: Этюд, устный счет
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.08.09 17:37
Оценка: 2 (2)
Здравствуйте, Smarty, Вы писали:

S> В общем жду отгадку — как ТАКОЕ в уме просчитывать. Автор — шаман?


Ну, решение для первой строчки почти очевидно:
(2^63 - 1)%(2^31 - 1) = (2*(2^31)^2 - 2 + 1)%(2^31 - 1) = (2*((2^31)^2 - 1^2) + 1)%(2^31-1) = (2*(2^31 + 1)*(2^31 - 1) + 1)%(2^31 - 1) = 1
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.