Форум: "Потрепаться";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
Внизкратность Найти похожие ветки
← →
selena (2004-01-06 14:57) [0]как найти число кратное трем?
← →
DVM (2004-01-06 14:58) [1]берешь любое целое, умножаешь на 3 :)
Вообще, что значит найти?
← →
Ega23 (2004-01-06 14:58) [2]ша (ш ьщв 3)=0 ерут ....
В смысле,
if (i mod 3)=0 then ...
← →
zapped (2004-01-06 15:12) [3]где найти?
← →
имя (2004-01-06 22:07) [4]Удалено модератором
← →
y-soft (2004-01-06 22:15) [5]В начальной школе, помнится, изучали такое свойство - число кратно трем, если нацело делится на 3 сумма его цифр.
Может поможет?
← →
Dimaz-z (2004-01-06 22:17) [6]Можно так - if Round(i / 3) = i / 3 then
Но можно, как и сказали - if (i mod 3) = 0 then
← →
Brahman (2004-01-06 22:17) [7]Предположим Вы - конь (ну или лошадь - не умаляя Ваших достоинств).
Начинаете бег с нуля и бежите иноходью по всем числам только вперед. Именно иноходью.
Для коня о четырех ногах иноходь - это деление по модулю 2.
Подозреваю, что для трехногого коня это должно быть делением по модулю 3. Впрочем, согласен, что нужно провести дополнительные исследования, но на них у нас cейчас нет ни средств? ни времени.
Так, шта...
Итого, как только очередная, по счету третьz нога ступает на очередное число, то оно и будет кратно трем.
Попробуйте, непременно попробуйте и Вам точно это понравиться - бегать иноходью:)
← →
Sergey_Masloff (2004-01-06 22:46) [8]y-soft © (06.01.04 22:15) [5]
>В начальной школе, помнится, изучали такое свойство - число >кратно трем, если нацело делится на 3 сумма его цифр.
Оффтопик. Так все же изучали! ;-)
Я тут как-то упомянул про это на работе и меня все пытались опровергнуть - типа не изучали такого. Некоторые горячие головы даже ставили под сомнение сам факт этого правила! ;-) Серьезно...
← →
Dimaz-z (2004-01-06 22:51) [9]Да, учили, но это лишние вычисления...
← →
y-soft (2004-01-06 22:52) [10]>Sergey_Masloff (06.01.04 22:46) [8]
Помнится, там и другие признаки делимости были - на 7, на 11 etc :))
Это еще чуть ли не дедушка Пифагор со ученики вывели, если память мне не изменяет :))
А кто ставит под сомнение - пусть приведет опровергающий пример
← →
Brahman (2004-01-06 22:56) [11]y-soft © (06.01.04 22:52) [10]
Sergey_Masloff (06.01.04 22:46) [8]
Господа ! Та при чем здесь пифа гора какая-то ?
Надо, чтобы это Матлаб не опроверг, и желательно проверить это на самом мощном компьютере и чтобы учихе тоже было понятно.
Или я не прав ?
← →
Mihey (2004-01-06 22:58) [12]Составить таблицу всех чисел, делящихся на 3 и проверять по ней.
← →
y-soft (2004-01-06 23:00) [13]>Dimaz-z © (06.01.04 22:51) [9]
Справедливо для чисел не более 32-х разрядов. Для очччень больших чисел может дать выигрыш при использовании рекурсии :)
>Brahman © (06.01.04 22:56) [11]
чтобы учихе тоже было понятно.
С этим, видимо, плохо :)
← →
default (2004-01-07 01:35) [14]если число делится нацело на три, то и сумма его цифр кратно трём
типа 21, 2+1 mod 3 = 0; 18, 1+8 mod 3 = 0 и тд
← →
default (2004-01-07 01:36) [15]сорри, все сообщения не прочитал...
← →
Думкин (2004-01-07 07:49) [16]Это в десятичной системе счисления.
А учили точно - в 3-м классе, до сих пор и картинки по этой теме помню - корзинки с яйцами.
← →
DVM (2004-01-07 14:00) [17]Вы еще сюда теорию сравнений и Алгебры и теории чисел приплетите! Как раз то что надо - из пушки по воробьям. Вначале же сказали MOD.
← →
Думкин (2004-01-07 16:28) [18]
> [17] DVM © (07.01.04 14:00)
А разве MOD - ответ? По-моему квинтэссенция вопроса подразумевает более глубокий анализ, и кстати, MOD - и теория чесел рядом.
← →
Юрий Зотов (2004-01-07 18:47) [19]> Думкин © (07.01.04 16:28) [18]
MOD - это ответ. Причем правильный, но неполный. А полный ответ такой: MOD + F1.
Вот в этом "F1" как раз и зашиты те самые квинтэссенция и более глубокий анализ.
← →
Думкин (2004-01-07 22:49) [20]
> [19] Юрий Зотов © (07.01.04 18:47)
Неправда ваша. Вопрос хвучит так:
> как найти число кратное трем?
А вовсе не так:
"Как узнать кратно число 3-м или нет". Поэтому MOD+F1 - это еще не квинтэссенция и не анализ. :-)
← →
y-soft (2004-01-07 22:59) [21]Постановка вопроса слишком расплывчатая, так что общий ответ дать невозможно
Все нижесказанное IMHO
Если надо выбрать числа, кратные 3-м из непрерывного диапазона чисел, то напрашивается "метод трехногого иноходца", предложенный Brahman ©.
Если же надо просто определить делимость произвольного числа, то для стандартных целочисленных типов оптимален Mod, а для очень больших чисел и нестандартных форматов (вроде двоично-десятичного) - исследование по признакам делимости. Для чисел 0..255 оптимальным вообще может оказаться проверка на вхождение в заранее сформированное множество (фактически - табличный метод от Mihey ©)
В любом случае надо уточнять условие и считать, а еще лучше, как правильно заметил Юрий Зотов ©, обратиться к F1 или даже перечитать курс прикладной математики...
← →
y-soft (2004-01-07 23:07) [22]>Думкин © (07.01.04 22:49) [20]
Предыдущий пост, это рассуждения "вообще", а не реплика в Ваш адрес
Просто, пока писал, отсоединился модем... :))
← →
Думкин (2004-01-07 23:12) [23]> [22] y-soft © (07.01.04 23:07)
Я понял. :-)
Так сеть и не восстановят?
← →
goga (2004-01-08 06:57) [24]Хых. Признак делимости на три все знают. Но, по-моему, разделять на цифры число чуть посложнее, чем делать mod 3.(А по секрету скажу, что быстрее сделать так :
var
d : double;
i : integer;
begin
d:=1/3;
for i:=1 to X do
if (i*d=Round(i*d)) then ListBox1.Items.Add(FloatToStr(i));
end;
Потому как на деление времени в тучу раз больше, чем на умножение происходит.
← →
Юрий Зотов (2004-01-08 09:43) [25]> goga (08.01.04 06:57) [24]
> Потому как на деление времени в тучу раз больше, чем на
> умножение происходит.
Но почему-то есть подозрение, что ЦЕЛОЧИСЛЕННОЕ деление выполняется все же быстрее, чем умножение С ПЛАВАЮЩЕЙ ТОЧКОЙ. И, тем более, быстрее, чем ДВА умножения (да еще плюс Round).
← →
Ega23 (2004-01-08 09:52) [26]Вот позавчера ответ написал про MOD, а всё Рождество мучался - а почему число однозначно делится нацело на 3(9), если сумма его цифр делится нацело на 3(9)? Чуть башня не съехала - если бы не был "попивши пивка" - точно сел бы теорию писать.
Кстати, с прошедшим всех.
← →
y-soft (2004-01-08 10:49) [27]>Ega23 © (08.01.04 09:52) [26]
А Вы проверьте еще одно утверждение (только осторожно, чтобы "башня" совсем не съехала :)) ):
В системе счисления по основанию A*n+1 на A без остатка делятся числа, сумма цифр которых делится на A без остатка...
Если утверждение верно, то напрашивается простой и универсальный способ проверки на делимость для чисел произвольной длины и не только в десятичной системе...
Например, если рассматривать некую последовательность байт как число, представленное в системе счисления по основанию 256, то для определения делимости на 3 будет справедливо следующее:
function IsNumber3Divisible(const Number : array of Byte) : boolean;
var
I : integer;
m : Byte;
begin
m := 0;
for I := Low(Number) to High(Number) do
m := (m + Number[I]) mod 3;
Result := m = 0;
end;
Ау, знатоки теории чисел! :)))
>Думкин © (07.01.04 23:12) [23]
Так сеть и не восстановят?
Увы, хотя каждый день клянутся :((
P.S. Естественно - утверждение доказать не пытался и на истинности не настаиваю :))
← →
Думкин (2004-01-08 11:07) [28]> [27] y-soft © (08.01.04 10:49)
256^n сравнимо с 1 по модулю 3. Значит все верно, и утверждение верно.
Для 11 по десятичной вывод такой же, только там не 1,1,1.... а -1,1,-1,1 - отсюда и признак делимости на 11.
← →
y-soft (2004-01-08 12:05) [29]>Думкин © (08.01.04 11:07) [28]
Завидую белой завистью профессиональным математикам! Они знают, там где непосвященные только догадываются... :)
← →
Igorek (2004-01-08 12:15) [30]3
← →
uw (2004-01-08 13:29) [31]>Думкин © (07.01.04 07:49) [16]
>А учили точно - в 3-м классе, до сих пор и картинки по этой теме помню - корзинки с яйцами.
Думкин, ты что-то перепутал. Когда с яйцами, то кратно двум!
← →
Думкин (2004-01-08 15:38) [32]> [31] uw © (08.01.04 13:29)
Эх, не модераторы бы - сказал. Ведь ты про те что в корзинке носишь? Сочувствую. :-))))))
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.007 c