16610
1
Решали данную задачу всей семьёй.Расписали три самых оптимальных варианта решения, потому как каждый из нас был уверен, что его решение самое верное(при любом раскладе постоянно лишними оставались тигры и слоны). Ребёнок с таким удовольствием выполнял данное задание,шёл в школу с радостью, а пришёл с двойкой. Сын до сих пор понять не может, за что ему двойку поставили. А я хочу узнать, как же решается эта задача, чтоб её! Может кто поможет? А то, может я зря собираюсь завтра в школу?
Ссылки по теме:
- 19 невероятных фактов, которые взорвут вам мозг
- "Тротула": книга о женщинах 12-13 веков
- Сцены в классике кино, после которых актёры долго приходили в себя
- Секреты актрис Золотого Голливуда
- Они хотели бы жить на Манхэттене
Метки: интересное факты
реклама
1) количество букв соответствовало описанному выше;
2) после буквы "к" была буква "с", буква "к" не должна стоять на последнем месте в строке;
3) перед буквой "ж" через одну была буква "т", буква "ж" не должна стоять первой или второй.
Попробуем сосавить такие строки:
ксксттжжсстт
ксксттжжттсс
ксксттжжтстс
...
Получается много вариантов. Считать их все лень. Заставим компьютер делать это. Напишем программу на С++.
==========
#include <stdio.h>
#define KROKODIL 0 // 2
#define SLON 1 // 4
#define ZHIRAF 2 // 2
#define TIGR 3 // 4
//Чтобы//Чтобы обозначить конкретное животное, достаточно 2 бит. Строка из 12 символов, каждое из которых
//обозначается//обозначается 2 битами, сама может обозначаться 24 битами. Осуществим перебор всех чисел из 24 бит.
//Это//Это всего 16 миллионов.
int main()
{
int total = 0; //счетчик//счетчик подходящих строк
for (int i = 0; i < 0x1000000; i++) { //все//все числа из 24 бит
int p[12];//каждому//каждому элементу массива p будет соответствовать число, номер животного.
int x = i;
//расставляем//расставляем животных по местам в массиве
p[0] = x & 3; x >>= 2;
p[1] = x & 3; x >>= 2;
p[2] = x & 3; x >>= 2;
p[3] = x & 3; x >>= 2;
p[4] = x & 3; x >>= 2;
p[5] = x & 3; x >>= 2;
p[6] = x & 3; x >>= 2;
p[7] = x & 3; x >>= 2;
p[8] = x & 3; x >>= 2;
p[9] = x & 3; x >>= 2;
p[10] = x & 3; x >>= 2;
p[11] = x & 3;
//проверим//проверим, выполняется ли в строке, полученной из числа i первое условие по количеству животных
//посчитаем//посчитаем, сколько каких животных получили
int cnt[4] = {0, 0, 0, 0};
for (int j = 0; j < 12; j++) {
cnt[p[j]]++;
}
//если//если первое условие не выполняется, сразу переходим к следующей строке
if (cnt[0] != 2 || cnt[1] != 4 || cnt[2] != 2 || cnt[3] != 4) continue;
//проверим//проверим, выполняются ли второе и третье условия. Изначально предположим, что это так.
int ok = 1;
for (int j = 0; j < 12; j++) {
//Если//Если крокодил стоит последним или не последним, но после него не слон, 2 условие не выполнено.
if (p[j] == KROKODIL && (j >= 11 || p[j+1] != SLON)) ok = 0;
//Если//Если жираф стоит первым или вторым, или через одного перед ним не тигр, 3 условие не выполнено.
if (p[j] == ZHIRAF && (j <= 1 || p[j-2] != TIGR)) ok = 0;
}
//Если//Если мы проверили всю строку и все три условия выполнены, значит эта строка соответствует
//условиям//условиям задачи и можно ее посчитать.
if (ok) total++;
}
printf("%d\n", total);
}
==========
Выполняя эту программу мы получим ответ, что существует 1170 строк, соответствующих условиям задачи.
Но все животные на рисунке разные. Если мы выберем одну строку, даже по ней мы можем нарисовать несколько разных линий. Разберем одну из таких строк. В ней 4 буквы "с". Это значит, что первой букве может соответствовать любой из 4 слонов. Второй букве может соответствовать любой из обсатвихся 3 слонов (итого уже 12 вариантов). Третьей букве может соответствовать любой из 2 оставшихся слонов (24 варианта). Последней букве соответствует оставшийся слон (24 варианта). Итого 24 варианта расстановки слонов. Для каждого из них 24 варианта расстановки тигров. Для каждого из них - 2 варианта расстановки крокодилов и далее 2 варианта расстановки жирафов. Итого, только для одной строки получаем 24*24*2*2=2304 варианта расстановки животных. А всего таких строк 1170. Итого получаем 2695680 возможных способов объединения всех животных в одну линию, чтобы выполнялись условия задачи. ВОТ!
PS: Допускаю наличие ошибки, т.к. немного после пива. ;-) Пожалуйста, проверьте.
Дорогие родители! Не идите на поводу у современного "образования"! Из детей делают роботов, дебилов, которыми впоследствии будет легко управлять!
Много повторения делаете, помоему у меня простейший вариант.
К-С-Т-С-Ж-Т )))) потом цыкл )))
Отойдите от наших стандартов - огромное кол-во людей в мире пишут и читают справа-налево! Цепочка - это НЕ однонаправленная последовательность. Ее можно читать как слева-направо, так и справа-налево! Это задача на логику. Она не привязана ни к каким стандартам. Делайте выводы
Действительно, у этой семьи не все впорядке с логикой.
Родителям срочно в школу, но УЧИТЬСЯ, а не ругаться с учителями (я так понял посыл аффтарши) и не позориться.
Один из графов предложенный ранее.
крокодил-слон,
тигр-тигр-жираф,
тигр-слон-жираф,
слон
1. первая фигурка после каждого крокодила - слон Т,Т,С,Ж,крокодил,слон,Т,Т,С,Ж,крокодил,слон
2. вторая фигурка перед каждим жирафом - тигр Т,тигр,С,жираф,К,С,Т,тигр,С,жираф,К,С
Я молодец!
. . .
. . .
не отрывая карандаша соедини эти точки четырьмя линиями
После каждого крокодила слон? Слон!
Второй перед каждым жирафом тигр? Тигр!
Всё соответствует правилам... Два лишних слона не мешают и ничего не нарушают. Или я что то не понял?? O_o
Нигде не сказано что это замкнутая цепочка.