Есть ответ 👍

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

158
264
Посмотреть ответы 2

Ответы на вопрос:


сначала рассмотрим такую : “имеется некоторое количество рыб. определить, возможен ли дележ рыб между тремя рыбаками в соответствии с условием дирака”[1] .

в программе решения этой используем следующие величины:

k0 - общее количество пойманных рыб;

k - количество рыб, оставшееся тому или иному рыбаку;

take - количество рыб, которые взял тот или иной рыбак;

i - номер рыбака;

partit - величина логического типа, определяющая возможность дележа (взятия каждым рыбаком трети оставшегося количества рыб).

на */школьном алгоритмическом языке /*соответствующая программа имеет вид:

_алг_ available_partition

_нач_ _цел_ k0, k, take, i,   _лог_ partit

¦ _вывод_ _нс_, "введите количество рыб"

¦ _ввод_ k0

¦ k: =k0

¦ i: =1

¦ _нц_           |цикл “действий” каждого рыбака

¦ ¦ k: =k-1             | осталось после выбрасывания одной рыбы

¦ ¦ _если_ mod(k,n)=0

¦ ¦ ¦_то_                   | i-й рыбак может взять треть оставшихся рыб

¦ ¦ ¦   partit: =_да_

¦ ¦ ¦   take: =div(k,3) | берет i-й рыбак

¦ ¦ ¦   k: =k- take       | оставшееся количество рыб

¦ ¦ ¦_иначе_

¦ ¦ ¦ partit: =_нет_         | при k0 рыбах дележ невозможен

¦ ¦ _все_

¦ ¦   i: =i+1

¦ i> n _или_ _не_ partit

¦ _если_ partit

¦ ¦_то_

¦ ¦ _вывод_ _нс_, "при таком количестве рыб дележ возможен"

¦ ¦_иначе_

¦ ¦ _вывод_ _нс_, "при таком количестве рыб дележ невозможен"

¦ _все_

_кон_

после этого программа нахождения минимального количества рыб, удовлетворяющего условию дирака, может быть оформлена кратко:

_алг_

_нач_ _цел_ k0

¦ k0: =0                 |начальное значение диапазона поиска

¦ _нц_ _пока_ _не_ avail_partit (k0)

¦ ¦ k0: =k0+1         |очередное значение

¦ _кц_

¦ _вывод_ _нс_, "наименьшее количество рыб,"

¦ _вывод_ "удовлетворяющее условию : ", k0

_кон_

где avail_partit(k0) - функция логического типа, определяющая возможность дележа k0/ /рыб в соответствии с условием , составленная на основе программы, чуть выше:

алг_ _лог_ avail_partit (_арг_ _цел_ k0)

_нач_ _цел_ k, take, i,   _лог_ partit

¦ k: =k0

¦ i: =1

¦ _нц_

¦ ¦ k: =k-1

¦ ¦ _если_ mod(k,3)=0

¦ ¦ ¦_то_

¦ ¦ ¦   partit: =_да_

¦ ¦ ¦   take: =div(k,3)

¦ ¦ ¦   k: =k- take

¦ ¦ ¦ _иначе_

¦ ¦ ¦   partit: =_нет_

¦ ¦ _все_

¦ ¦   i: =i+1

¦ i> 3 _или_ _не_ partit

¦ _знач_: = partit | значение функции

_кон_

соответствующая программа на паскале:

{ “рыбаки и рыбки”}

var

k0: integer;

function avail_partit (k0: integer): boolean;

var

k, take, i: integer;

partit: boolean;

begin

k: =k0;

i: =1;

repeat               {цикл “действий” каждого рыбака}

k: =k-1;         {осталось после выбрасывания одной рыбы}

if k mod 3 = 0 then

{i-й рыбак может взять треть оставшихся рыб}

begin

partit: =true;

take: =k div 3; {берет i-й рыбак}

k: =k - take       {оставшееся количество рыб}

end

else

partit: =false;     {дележ невозможен}

i: =i+1

until (i> 3) or not partit;

avail_partit: = partit       {значение функции}

end;

begin       {основной программы}

k0: =0;         {начальное значение диапазона поиска}

while not avail_partit(k0) do

k0: =k0+1;         {очередное значение}

write('наименьшее количество рыб, ');

writeln('удовлетворяющее условию : ', k0)

end.

выполнив программу, можно увидеть, что минимальное количество рыб, удовлетворяющее условию , равно 25. имеются и большие значения (52, 79, 106,

имеется и другой способ решения . можно, так сказать, идти не от общего количества пойманных рыб, а от числа рыб, доставшихся третьему рыбаку. если эту величину обозначить take3, то можно записать, что количество рыб, оставшееся тому или иному рыбаку, равно:

1) третьему рыбаку: k3 = 3* take3 + 1;

2) второму: k2 = 3*k3 + 1;

3) первому (то есть общее количество пойманных рыб[2]): k1 = 3*k2 + 1.

перебирая значения k3, равные 1, 2, 3, …, можно найти такое минимальное число, при котором значения величин k2 и k1 есть целые числа.

программа, реализующая такой подход к решению , имеет вид:

{ "рыбаки и рыбки"}

var

take3, k3: word;

k2, k1:   real;

begin

take3: =1;

repeat

k3: =3* take3+1;

k2: =k3*3/2+1;

k1: =k2*3/2+1;

take3: = take3+1

until   (trunc(k2)=k2) and (trunc(k1)=k1);

write('наименьшее количество рыб, ');

writeln('удовлетворяющее условию : ', trunc(k1))

end.

рассмотренную можно решать и при другом числе рыбаков. соответствующие результаты представлены в таблице (естественно, что некоторые из них являются условными).

число рыбаков

4

5

6

7

искомое количество рыб

253

3121

46651

823537

сашп17
4,6(83 оценок)

Попробуй так:

Объяснение:

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS