Задачка для 3-го класса

vott.ru — про орехи и хомяка, с разведопроса с Савватеевым, текст в первом
Новости, Наука | Mafia 20:58 12.04.2019
51 комментарий | 35 за, 1 против |
#1 | 20:59 12.04.2019 | Кому: Всем
Семья 4 человека: папа, мама, дочка, сын. И хомяк.
Мама купила куль орехов и положила с утра на стол и ушла на работу.
1. Проснулся папа. Опача, орехи. Дал хомяку 1 орех, себе отсыпал четверть (от того, что осталось), завязал куль и на работу.
2. Проснулся сын. Нормас, орешки нераспакованные. Дал хомяку 1 орех, себе - аналогично, четверть. Сжевал - и на учёбу.
3. Проснулась дочь. Круто, свежий орех полезен. Дала хомяку 1 орех, себе - четверть куля. И в школу.
4. Вечером пришла с работы уставшая мама. Вроде куль не трогали, норм. Дала хомяку 1 орех, себе четверть куля.
5. Вся семья сидит за ужином и смеётся над ситуацией. Поделили остатки на 4 части и съели.
Сколько было орехов сначала?
(минимально возможное число, чтоб везде всё делилось нацело)
Crypt
Ебанько »
#2 | 21:01 12.04.2019 | Кому: Всем
Хомякохулие наблюдаю я. Хомяку досталось всего 4 ореха?!?

P.S. Мать объедать нехорошо!!!
#3 | 21:08 12.04.2019 | Кому: Crypt
> Хомяку досталось всего 4 ореха?!?

Повезло ещё, по задумке ему один орех еле светил!
Crypt
Ебанько »
#4 | 21:09 12.04.2019 | Кому: Mafia
> > Хомяку досталось всего 4 ореха?!?
> Повезло ещё, по задумке ему один орех еле светил!

Сволотчи!!!
Точка Кипения
Навальноид. »
#5 | 21:12 12.04.2019 | Кому: Всем
[censored]
#6 | 21:12 12.04.2019 | Кому: Crypt
> Хомякохулие наблюдаю я. Хомяку досталось всего 4 ореха?!?

У меня крыс примерно по этому же принципу получает свои печеньки (метелит так, что никаким хомякам не снилось). Ещё мешок печенек остался :)
#7 | 21:15 12.04.2019 | Кому: Всем
3877 с учетом тех, что сожрали мыши, тайные агенты профессора математики. :)
#8 | 21:19 12.04.2019 | Кому: mici
> 3877

1. Папа дал хомяку орех, осталось 3876. Отсыпал себе четверть, осталось 3876*3/4 = 2907.
2. Сын дал хомяку орех, осталось 2906. Хотел было четверть отсыпать, да не делится 2906 на 4.
#9 | 21:20 12.04.2019 | Кому: Всем
В конце все поужинали тремя орехами. Долбаный хомяк!
Хотя... Кокос тоже орех.
#10 | 21:20 12.04.2019 | Кому: Mafia
А остальное мыши сожрали. :)
Crypt
Ебанько »
#11 | 21:22 12.04.2019 | Кому: mici
> 3877

Херасе себе кулёк... Если это был фундук, то кулёк в 7,7кг выходит и объёмом в 19,4 литра...
#12 | 21:24 12.04.2019 | Кому: Crypt
> Если это был фундук

А если кокос, то семь кубометров!
#13 | 21:26 12.04.2019 | Кому: Всем
я на нтв или рентв про эту задачу передачу смотрел: там дочь в 15 лет забеременела выпив "на донышке", сын наркоман и с преподавательницей за зачёты сожительствует, мать бухает и сериалы смотрит, а отец с соседкой ей изменяет и тест днк показал, что эти дети все от соседки... хомяк вроде просто сдох как и положено хомякам после еды ;(

ps сколько орехов было я не понял - их милиция конфисковала и они в райотделе пропали куда-то ;)
Crypt
Ебанько »
#14 | 21:30 12.04.2019 | Кому: Mafia
> > Если это был фундук
> А если кокос, то семь кубометров!

Сильна мать!!!
#15 | 21:39 12.04.2019 | Кому: Всем
Про папу, маму, сына и хомячка анекдот есть. Но там вообще без орехов.
#16 | 21:39 12.04.2019 | Кому: tarasz
> хомяк[,] вроде[,] просто сдох[,] как и положено хомякам после еды

Не, не положено.

Но если содержать хомяка на «свободном выпасе», т.е., выпускать его из клетки вольно побегать -- в основном гибнут под ногами. Они крайне тупые и крайне близорукие и ориентируются либо по запаху, либо наощупь (вибриссами). Просто не успевают отскочить.

Я так первой крысе на хвост наступил. Получил рефлекторный укус в большой палец ноги и верещание на всю квартиру. Она потом пришла ко мне извиняться, была прощена.
#17 | 21:41 12.04.2019 | Кому: Всем
Несколько вариантов.
Чтобы не ловить миллиметражи , деля последнюю кучку, можно просто порезать орех пополам. В этом случае изначально было 253 ореха, и в конце семья съела каждый по 19 с половиной орешка (или хомяк, сцуко, получил сразу два ореха, а члены семью- по 19) .
Под этот алгоритм подходит еще 1277 орехов в начале, и по 100 с половиной ореха каждому в конце.
Или изначально было [765] орехов .
#18 | 21:45 12.04.2019 | Кому: Всем
> 61

Не бьется последняя итерация . Там мама приходит на 24 ореха, отдает хомяку один, а 23 на 4 не делится.
Зы. Да, я составил таблицу в Экселе .
#19 | 21:52 12.04.2019 | Кому: Всем
Похоже на то. Если мама не давала хомяку в хорошем смысле, то да, изначально был 61 орех . А вотт если давала (опять же, в хорошем смысле)..
То тогда было или 765 орехов, или 1789 (каждому по 141) .. И все, ибо по условию задачи кулек был небольшой.
#20 | 22:01 12.04.2019 | Кому: Всем
> 61
> но на последнем этапе мамаша зажала орешек.
> иначе не получается

Даже если б зажала, всё равно не канает:
61
60, 45
44, 33
32, 24
24, 18
18 на 4 не разделится за ужином.
#21 | 22:04 12.04.2019 | Кому: Ябадабадун
> Или изначально было [765] орехов .

765 подходит безо всяких оговорок.
#22 | 22:04 12.04.2019 | Кому: Всем
> 60/765

Отож.
Ёксёль счётёёт тёчнё.
#23 | 22:05 12.04.2019 | Кому: Mafia
Еще 1789 .
Было 1789 Папа-хомяк 1788 остаток от папы 1341 Сын-хомяк 1340 Остаток от сына 1005 Дочь-хомяк 1004 Остаток от дочки 753 Мать-хомяк 752 Остаток от мамы 564 Досталось каждому 141
#24 | 22:07 12.04.2019 | Кому: Ябадабадун
> То тогда было или 765 орехов, или 1789 (каждому по 141)

Так!
#25 | 22:14 12.04.2019 | Кому: Ябадабадун
Ага, подходит. Там и дальше можно продолжить ряд: 765, 1789, 2813, 3837, 4861, ...
По условию нужна минимальная цифирь, 765 стало быть.
#26 | 22:16 12.04.2019 | Кому: Antic
> Не, не положено.
[censored]
#27 | 22:29 12.04.2019 | Кому: Всем
Если расписать все действия, то получится много скобочек и дробей: (((((x-1)*3/4 -1)*3/4)-1)*3/4-1)*3/4 /4
После раскрытия скобок останется (81x-525)/1024
Т.е. x должен оказаться таким, чтоб (81x-525)/1024 было целым числом.
Умножаем x на 81, вычитаем 525, - должно разделиться на 1024 нацело.
Т.е. остаток от деления на 1024 должен быть равен 0.
81x - 525 = 0 (1024)
(модулярная арифметика, считаем всё по модулю 1024).
81x = 525 (1024)
x = 81^-1 * 525 = 177 * 525 = 765 (1024)
81^-1 - обратное по модулю 1024 (такое число, которое при умножении на 81 даёт 1), продвинутые калькуляторы берут, либо на бумажке - обобщённый алгоритм Евклида, либо цепными дробями[censored]
177 * 81 = 14337 = 1 (1024).

Ну и видно, что ответом будет не только 765, но и всё что даёт 765 в остатке при делении на 1024, т.е. числа вида 765 + 1024*k
#28 | 22:31 12.04.2019 | Кому: Mafia
> Если расписать все действия, то получится много скобочек и дробей: (((((x-1)*3/4 -1)*3/4)-1)*3/4-1)*3/4 /4
> После раскрытия скобок останется (81x-525)/1024
> Т.е. x должен оказаться таким, чтоб (81x-525)/1024 было целым числом.
> Умножаем x на 81, вычитаем 525, - должно разделиться на 1024 нацело.
> Т.е. остаток от деления на 1024 должен быть равен 0.
> 81x - 525 = 0 (1024)
> (модулярная арифметика, считаем всё по модулю 1024).
> 81x = 525 = 0 (1024)
> x = 81^-1 * 525 = 177 * 525 = 765 (1024)
> 81^-1 - обратное по модулю 1024 (такое число, которое при умножении на 81 даёт 1), продвинутые калькуляторы берут, либо на бумажке - обобщённый алгоритм Евклида, либо цепными дробями вот так.
> 177 * 81 = 14337 = 1 (1024).
>
> Ну и видно, что ответом будет не только 765, но и всё что даёт 765 в остатке при делении на 1024, т.е. числа вида 765 + 1024*k

Сложно для 3 класса, вот так проще:

static void Main(string[] args)
        {
            var array = new double[6];

            do
            {
                array[0]++;
                array[1] = 4 * array[0];

                for (int j = 0; j < 4; j++)
                {
                    array[j + 2] = 4 * array[j + 1] / 3 + 1;
                }
            }
            while (array.Any(x => (x - Math.Truncate(x)) > Double.Epsilon));

            Console.WriteLine(string.Join(" ", array));
            Console.ReadKey();
        }
#29 | 23:29 12.04.2019 | Кому: Ilya.K
Можно не так красиво:

for {set i 0} {$i < 10000} {incr i} {
	set bilo [expr $i*4+1]
	set orehi $bilo
	set err 0
	for {set j 0} {$j < 4} {incr j} {
		set zabrali [expr 1+($orehi-1)/4]
		set orehi [expr $orehi-$zabrali]
		if {[expr ($orehi-1) % 4] != 0 && $j != 3} { 
			set err 1 
			break
		}	
	}
	if {$err} {continue}
	if {[expr $orehi % 4] == 0} {
		puts "Otvet: $bilo"
		break
	}
}

Otvet: 765
#30 | 23:48 12.04.2019 | Кому: Всем
Или обратно:
for {set i 1} {$i < 10000} {incr i} {
	set err 0
	set orehi [expr $i*4]
	for {set j 0} {$j < 4} {incr j} {
		set orehi [expr $orehi+25*$orehi/75]
		if {[expr $orehi %4 ] != 0} {
			set err 1
			break		
		} else {
			set orehi [expr $orehi+1]
		}
	}
	if {$err} {continue} else {
		puts "Otvet $orehi"
		break
	}
}
#31 | 02:07 13.04.2019 | Кому: Всем
Было -3(минус три) ореха.
Один хомяку - стало -4.
Четверть себе(-1), стало снова -3.

И далее итерация повторяется!
#32 | 02:17 13.04.2019 | Кому: Mafia
> Ну и видно,

Кому видно??? Мне вот нужен кулёк орехов(счётных палочек), семья из 4-х человек и хомяк, чтобы, перегоняя орехи согласно условию, получить ответ!!!
#33 | 02:22 13.04.2019 | Кому: Ilya.K
> вот так проще:

Что это, и как работает? Что это программа, понимаю (или думаю, что понимаю). А вот как физически с ней будет работать пользователь: что увидит на мониторе, что будет вводить? Или там уже всё сделано? Тогда не вижу числа 765.
(если есть время, возможность и желание объяснять).
ЗЫ Там вон ниже ещё и Злой отписался, но к нему опасаюсь обращаться, т.к. Злой!!!
#34 | 03:43 13.04.2019 | Кому: врач
> Что это, и как работает?
Открываешь терминал и запускаешь.
После старта она создаёт в памяти переменные и другие структуры данных, которые описаны.
Потом, в программе два цикла, собственно, имеющиеся данные заполняются в структуры данных, производятся арифметические действия. Когда срабатывают условия в последнем цикле, поток управления выходит из него и выполняет инструкцию по выводу в stdout, который отображается в терминале.
#35 | 05:02 13.04.2019 | Кому: Freund
> Открываешь терминал

Я даже не знаю, что такое терминал. Да и в записанной Ильёй программе не вижу никаких формул (традиционных во всяком случае). Слова "орехи", "забрали", "было" нашёл у Злого, но там без узнаваемых формул.
И как с этим работает пользователь? Это же программа не для конкретной задачи, а для всех задач подобного типа, или решает только вот эту, а в программе записан ход конкретных вычислений? Иными словами: решит эта программа задачу, если в семье будет пять человек (один из которых, пока никого нет, берёт не пятую часть, а половину) и два хомяка?
Прошу прощения за назойливость.
#36 | 05:39 13.04.2019 | Кому: Всем
привычка потреблять четвертями до добра не доведёт
#37 | 05:44 13.04.2019 | Кому: mastan
Остроумно, но последнее действие за ужином не проходит. -3 не делится на 4.
Ближайшее отрицательное число, при котором работает: 765-1024 = -259.
-259, -260, -195
-195, -196, -147
-147, -148, -111
-111, -112, -84
-84, -21
#38 | 06:29 13.04.2019 | Кому: врач
> И как с этим работает пользователь? Это же программа не для конкретной задачи, а для всех задач подобного типа, или решает только вот эту, а в программе записан ход конкретных вычислений? Иными словами: решит эта программа задачу, если в семье будет пять человек (один из которых, пока никого нет, берёт не пятую часть, а половину) и два хомяка?

Не, это код, который решает конкретно этот пример. Запускаешь и видишь на экране ответ, все.
Никакого практического применения, просто кому-то проще решить пример на бумажке, кто-то выше в Excel решал, мне проще написать 8 строк кода.
Про то, что 3-клашкам проще так решать, это ирония была ;-)

> Я даже не знаю, что такое терминал. Да и в записанной Ильёй программе не вижу никаких формул (традиционных во всяком случае). Слова "орехи", "забрали", "было" нашёл у Злого, но там без узнаваемых формул.


Задача решается перебором с конца.
Предполагается, что в самом конце семья съела по A ореху, тогда у них было B = 4*A орехов, тогда у мамы было C = 4/3*B + 1 орехов, тогда у дочи было D = 4/3*C + 1, у сына E = 4/3*D + 1, и наконец у папы F = 4/3*E + 1.
Последние 4 формулы одинаковые поэтому записаны у меня в цикле как X(i+1) = 4/3*X(i) + 1.
После того как все A,B,C,D,E,F (для удобства они у меня в одном массиве из 6 элементов, где А это array[0], B - array[1] и т.д.) найдены, проверяется, что все они целые, если нет, то A берет на единицу больше и все повторяется заново.

Решать перебором не самый эффективный способ, но зато самый быстрый в реализации, а учитывая, что мне нужно было просто решить задачку, а не писать прикладной софт для решения подобных задач.
#39 | 06:44 13.04.2019 | Кому: врач
> Это же программа не для конкретной задачи, а для всех задач подобного типа, или решает только вот эту

Только эту. Там по сути описана последовательность действий, которую выпонляют поедатели орехов. После каждого действия выполняется проверка на целочисленность. Если где-то проверка не прошла, то всё повторяется сначала с другим начальным x (перебор ведётся от 1 до 10000-1).

А вот такая запись (что за язык такой?)
set orehi [expr $i*4]
обозначает
записать в переменную orehi (именованный кусочек памяти) результат выражения $i*4 (здесь $i - другая переменная, которая перебирается в цикле от 1 до 9999).



Внутри большого цикла (от 1 до 9999) есть ещё маленький (от 1 до 4), в котором повторяется действие:
1) умножить на 4/3 (точнее к имеющимся орехам прибавить 25/75 от них же).
set orehi [expr $orehi+25*$orehi/75]

2) проверить, делится ли на 4
if {[expr $orehi %4 ] != 0} {...

3) и если проверка провалилась, то прервать маленький цикл, выставив переменную err в 1.
set err 1
break
4) а если проверка прошла, то прибавить к орехам 1
set orehi [expr $orehi+1]
5) после маленького цикла смотрим, если переменная err не 0 (например, =1), то перейти к следующей итерации большого цикла:
if {$err} {continue}
6) иначе вывести ответ и прервать большой цикл:
else {
puts "Otvet $orehi"
break
}
#40 | 09:15 13.04.2019 | Кому: Всем
В Экселе за несколько секунд решается :)
Заполняешь шесть строчек:
1
=4*A1
=4*A3/3+1
=4*A4/3+1
=4*A5/3+1

Выделяешь эти шесть ячеек, цепляешь и тянешь вправо.
Верхняя строчка будет содержать последовательный ряд натуральных чисел (сколько каждому досталось в последней итерации раздела орехов - хомяка обделили сволочи!)
Ищешь взглядом столбец, в котором все целые.
Шестая сверху ячейка в этом столбце и есть ответ.
Всё.

765 конечно.

А вообще грустно: современные дети вообще неприспособленные к жизни - все ответы очень просто получить, был бы комп под рукой.
#41 | 10:07 13.04.2019 | Кому: Mafia
> А вот такая запись (что за язык такой?)

Это Tcl (Tool Command Language). Часто его по работе использую. Запустить можно в терминале командой tclsh.
4ekist
надзор »
#42 | 10:47 13.04.2019 | Кому: Всем
Всегда нужно смотреть на адекватность ответа и задачи.
1)Сколько весит кулек, в котором 765 орехов? Ответ: очищенный фундук порядка 1 кг
2) Сколько времени потратит каждый член семьи на пересчет этих сотен орехов, чтобы отделить себе ровно четверть? Ответ- порядка 5-10 минут
3) что за ебанутая семья такая, которая так делает? Ответ: неизвестно, но русские так не делают
4) какой же нужно быть (в глазах хомяка) сволочью, чтобы дать ему из 765 только 1 орех?
#43 | 11:15 13.04.2019 | Кому: Ilya.K
Спасибо за науку.
#44 | 11:16 13.04.2019 | Кому: Mafia
Спасибо за науку.
#45 | 11:53 13.04.2019 | Кому: Всем
Это перепевка старой задачи, описанной М. Гарднером в книге "Математические головоломки и развлечения"
[censored]
Только там 5 (пять) матросов, мартышка и кокосы.

И красивый ответ в отрицательных числах -4 кокоса.
#46 | 12:16 13.04.2019 | Кому: врач
> Я даже не знаю, что такое терминал.

Грубо говоря, это старая добрая командная строка (cmd.exe в Windows). В Linux, когда ты работаешь в графической оболочке, для доступа к ней используется приложение Terminal. Поэтому это как синонимы.
Пример из коммента №33 я сохранил в файл orehi.tcl, открыл терминал и набрал в нём:
tclsh orehi.tcl
И получил ответ. tclsh -- это интерпретатор языка Tcl (приложение), которое исполнило те команды, которые я написал в tcl-файле.
#47 | 12:23 13.04.2019 | Кому: Sean1s
> А вообще грустно: современные дети вообще неприспособленные к жизни - все ответы очень просто получить, был бы комп под рукой.

Для детей есть отличная бесплатная программа, которая обучает азам программирования. Подойдет даже для дошколят. У кого дети есть попробуйте.
[censored]
#48 | 12:24 13.04.2019 | Кому: Trubach
[censored]

-4 не подходит:
-4, -5, -4
-4, -5, -4
-4, -5, -4
-4, -5, -4
-4, -5, -4
-4: не делится на 5.

В отрицательных числах не шибко красивый ответ: 3121 - 15625 = -12504

-12504, -12505, -10004
-10004, -10005, -8004
-8004, -8005, -6404
-6404, -6405, -5124
-5124, -5125, -4100
-4100, -820.
#49 | 12:53 13.04.2019 | Кому: Mafia
> -4: не делится на 5.

А мартышке орех отдать?
Из Гарднера: "В самом лучшем положении при таком «пополнении запасов наоборот» оказывается мартышка: она умчится, получив свои +6 орехов!"
#50 | 13:11 13.04.2019 | Кому: Trubach
> А мартышке орех отдать?

По ссылке (как и про семью с кулём орехов) на финальном этапе животному ничего не достаётся:

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

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

Через некоторое время проснулся другой «робинзон» и сделал то же самое. У него тоже остался один лишний орех, и он отдал его мартышке. И так один за другим поступили все пятеро потерпевших кораблекрушение. Каждый из них взял себе одну пятую орехов из той кучи, которую он нашел при пробуждении, и каждый отдал один орех мартышке. Утром они поделили оставшиеся орехи, и каждому досталось поровну — по одной пятой. Разумеется, каждый из матросов не мог не знать, что части орехов не хватает, но так как у каждого из них совесть была одинаково нечиста, то никто ничего не сказал. Сколько кокосовых орехов было первоначально?


Если за завтраком обезьяне тоже достаётся - 6-й орех, то -4 - подходит.
Но и положительный ответ тогда будет не 3121, а
-4 + 15625 = 15621

Позже заметил, что там в тексте дальше и про второй вариант упоминают. Это типа древний вариант - где макачере 6 орехов. В современной формулировке, "рассказ Вильямса", - там 5 орехов.
Войдите или зарегистрируйтесь чтобы писать комментарии.