М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
kristinalogvin20
kristinalogvin20
25.02.2023 18:09 •  Информатика

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

👇
Ответ:
hh222
hh222
25.02.2023

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

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

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

 

для четырех:

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

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

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

 

для пяти

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

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

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

 

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

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

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

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

 

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

 

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

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

3 монеты:

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

 

4 монеты

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

 

5 монет.

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

 

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

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

 

Общая идея:

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

 

 

 

 

4,5(71 оценок)
Открыть все ответы
Ответ:
elnur4ik2002
elnur4ik2002
25.02.2023
Программа, которая использует два массива

var 
c, a: array[1..20] of integer; 
i: integer;
begin 
write('Первый массив '); 
for i := 1 to 20 do   begin   
c[i] := i * (-5);   
write(c[i], ' '); 
end; 
writeln; 
write('Преобразованный массив '); 
for i := 1 to 20 do   begin   
a[i] := c[20 - i + 1];   
write(a[i], ' '); 
end;  
end.

ИЛИ  Программа не использующая два массива, а просто переворачивающая первый

var 
c: array[1..20] of integer; 
i: integer;
begin  write('Первый массив '); 
for i := 1 to 20 do   begin   
c[i] := i * (-5);   
write(c[i], ' '); 
end; 
writeln; 
write('Преобразованный массив '); 
for i := 20 downto 1 do  write(c[i], ' '); 
end.

Обе программы работают!
4,4(21 оценок)
Ответ:
ekaterinakorol4
ekaterinakorol4
25.02.2023
1)
from random import random
N = 10
a = []
for i in range(N):
    b = int(random() * 50)
    a.append(b)
print(a)

min = 101
for i in range(N-1):
    s = a[i]+a[i+1]
    if (s < min) and (s % 2 == 1):
        min=s
print(min)

Пример:[41, 35, 16, 7, 29, 9, 16, 28, 10, 6]
23

2)
from random import random
N = 10
a = []
for i in range(N):
    b = int(random() * 50)-25
    a.append(b)
print(a)

k = 0
for i in range(N-1):
    p = a[i]*a[i+1]
    s = a[i]+a[i+1]
    if (p % 2 != 0) and (s > 0):
        k = k+1
print(k)

Пример:[11, 23, 12, -16, 21, 15, -11, -10, 10, 17]
3
4,6(12 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ