IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Поясните пожалуйста.
Harsent
сообщение 14.03.2006 10:24
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Задачка такая:
Код
Выяснить, делится ли на 7 двоичное число, состоящее не более чем из 1000 цифр.


Т.е нужно перебрать все цифры от 1000 до 9999 и узнать, какие из них деляться на 7?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 14.03.2006 10:33
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Нет.
Двоичное число - это число вида 010101010101111.
Количество цифр в этом числе не более 1000.
Нужно узнать делится ли такое число на 7.

Признак делимости на 7 знаете?

Цитата
Число делится на 7 тогда и только тогда, когда результат вычитания удвоенной последней цифры из этого числа без последней цифры делится на 7 (т. н. 364 делится на 7 т. к. 36-2×4 = 28 делится на 7) (без остатка).

Н. Н. Воробьёв, Признаки делимости, «Популярные лекции по математике», Выпуск 38, М., «Наука» 1988 г., 94 стр.


Причем это свойство для десятичных чисел. Вам разрешено переводить исходное двоичное число в десятичное?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Harsent
сообщение 14.03.2006 10:48
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Цитата(Ozzя @ 14.03.2006 10:33) *

Причем это свойство для десятичных чисел. Вам разрешено переводить исходное двоичное число в десятичное?

В условии этого не сказано, но других путей, кроме как, перевода в десятичное, я, например, не представляю smile.gif значит, разрешено всё то, что не запрещено smile.gif

Сообщение отредактировано: Harsent - 14.03.2006 10:50
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Harsent
сообщение 15.03.2006 5:09
Сообщение #4





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Help! blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 15.03.2006 7:54
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Перевод и десятичной с.с. в любую и наоборот


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 15.03.2006 9:20
Сообщение #6


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


а нет ли какого-нибудь специфического признакак для восьмеричной сс?
мне кажется, что-то аналогично 9 в 10 сс.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 15.03.2006 10:10
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Переводить 2-ное число в 10-е не надо. Учитывая, что в условии говорится про 100 цифр smile.gif Нужно разбить на тройки и сложить. Если полученное число делится на 7, то все ок. Разрядность полученного числа будет значительно меньше исходного, поэтому вторую проверку делать можно и через Mod (ну или дальше разбивать и складывать)

пример:

7*33=231=11 100 111, складываем: 3+4+7=14.
14=1 110=1+6=7.

31969=111 110 011 100 001=7+6+3+4+1=21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 15.03.2006 11:16
Сообщение #8


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Malice, я про это, собственно, и пыталась сказать smile.gif
разбиением на триады фактически переходим к восьмеричной.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 16.03.2006 7:12
Сообщение #9


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(мисс_граффити @ 15.03.2006 11:16) *

Malice, я про это, собственно, и пыталась сказать smile.gif

Конечно, но Malice привел конкретный признак! smile.gif
Я тут приведу его обоснование, а то не совсем понятно, откуда он берется..
Пусть ai - цифры (из набора от 0 до 7), представляющие восьмеричную запись числа, пронумерованные справа налево от i=0 до n. Тогда само число есть:
an*8^n + ... + ai*8^i + ... + a0
Теперь представим 8 как 7+1
an*(7+1)^n + ... + ai*(7+1)^i + ... + a0
Если теперь раскрыть каждую скобку по формуле бинома Ньютона, то в ней все слагаемые будут иметь множитель 7, кроме одного, который равен 1. Отбросим все слагаемые с семерками (они делятся на 7). Теперь видно, что для делимости на 7 исходной суммы (то есть нашего числа) необходимо и достаточно , чтобы сумма цифр:
an + ... + ai + ... + a0
- делилась на 7.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 12:09
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"