В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
даяна55552
даяна55552
20.04.2020 22:17 •  Информатика

Выбери верное название Обтекания.

Информатика 7 класс

Показать ответ
Ответ:
Nikita45Nikita45
Nikita45Nikita45
08.11.2020 13:24

тогда для трех монет: взвешиваем две наугад

если кучки имею одинаковый вес, значит фальшивая монета - третья.

Если вес ранзый, значит фальшивая одна из взвешиваемых монет. Значит та что лежит отдельно - настоящая. Сравним по весу одну из этих двух с третьей и узнаем какая из них фальшивая. (макс два взвешивания)

 

для четырех:

разобъем на три кучки 1, 1 и 2 монеты

взесим кучки по одной монете, если они разные, значит фальишвка среди них. Взвесим одну из монет с одной из оставшихся и сразу выясним какая фальшивка.

Если же кучки из 1 монеты одинаковые значит они обе настоящие. Возьмем одну из неиспользованных монет и взвесим с одной из настоящих. Сразу поймем какая из двух оставшихся фальшивая (макс 2 взвешивания)

 

для пяти

две кучки по две монеты и одна из одной. 

взвесим две кучки между собой. если они одинаковые по весу, значит фальшивка - оставшаяся пятая.

если кучки разные по весу, то надо найти какая же из четырех монет фальшивая. задача сводится к предыдущей про 4 монеты (макс 3 взвешивания)

 

для шести монет

три кучки по две монеты. сравниваем две из них

если кучки имеют одинаковый вес, значит фальшивка в оставшейся кучке, а все взвешанные четыре монеты - подлинные.

взвешиваем одну из оставшихся монет с одной из подлинных и понимаем какая фальшивка из оставшихся.

 

Либо если первые две кучки имеют разный вес, то задача сводится к задаче с четырьмя монетами. Итого макимум 3 взвешивания.

 

Примечание, как правило задача формулируется не так и мы уже точно знаем, что фальшивка легче, 

тогда алгоритмы:

3 монеты:

взвешиваем две, если какая то из них легче - фальшивка, если нет, значит оставшаяся фальшивка - 1 взвешивание

 

4 монеты

берем две монеты взвешиваем. если одна легче - она фальшивка, если одинаковый вес, то взвешиваем между собой две другие, та которая легче - фальшивка 2 взвешивания

 

5 монет.

две кучки по две монеты взвешиваем. Если одинаковый вес, то фальшивка - пятая монета, если одна из кучек легче - фальшивка в ней. взвешиваем две монеты легкой кучки между  собой - легкая и есть фальшивка. 2 взвешивания

 

6 монет. две кучки по две монетки взвешиваем между собой. если вес одинаков - взвешиваем между собой две оставшиеся монеты - фальшивка найдена, 

если вес разный, то в легкой кучке фальшивка. Взвесим между собой монетки из наиболее легкой кучке - найдена фальшивка. 2 взвешивания.

 

Общая идея:

так как у весов три положения, то монеты надо стараться бить на три множества.

 

 

 

 

0,0(0 оценок)
Ответ:
Mamboklubnika
Mamboklubnika
29.08.2021 18:45
Это задача совсем не "за ".
Количество чисел k2, которые делятся на два, равно целой части от n/2. Аналогично, k3=n/3 и k5/n/5. Вычтем все эти количества из общего количества чисел, равного n: k=n-(k2+k3+k5) и это даст примерное количество чисел, которые не делятся на 2, 3 и 5. Примерно оно потому, что мы не учли числа, которые одновременно делятся на 2 и 3, на 2 и 5, на 3 и 5. Т.е. числа, которые делятся на 6, 10 и 15 мы вычли дважды. Поэтому надо найти количество этих чисел и отнять их. k6=n/6, k10=n/10, k15=n/15 - по-прежнему делим нацело. И теперь за исправленное значение k принимаем k+(k6+k10+k15).
И последнее. Есть еще числа, которые делятся одновременно на 2, 3 и 5, т.е. на 2*3*5=30. Таких чисел k30=n/30. И мы их дважды прибавили. Теперь делаем последнюю коррекцию k, получая : k-k30.

Окончательно формула расчета:
k=n-(k/2+k/3+k/5)+(k/6+k/10+k/15)-k/30 при условии целочисленного деления.

То что мы проделали выше, носит название операции включения-исключения множеств.
Программа получается совсем простой.

Sub abc()
    Dim n As Long
    n = InputBox("Введите натуральное N")
    If n < 0 Then n = Abs(n) 'Защита от дурака
    MsgBox n - (n \ 2 + n \ 3 + n \ 5) + (n \ 6 + n \ 10 + n \ 15) - n \ 30
End Sub
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота