Нынешнее образование в школе все более и более редуцируется. А в оставшейся части акцент все более и более ставится на внешний эффект. «Проектная работа», презентации, вау-эффекты и пр. мишура. Причем зачастую непонятно, кому раздают все эти упражнения — ребенку или родителям? Следствием всего этого является необходимость дополнительных занятий в различных кружках, в рамках школы или же альтернативно, если есть цель дать ребенку полноценное образование.


В случае с математикой или физикой можно попытаться поймать двух зайцев (ну или зайца и зайчонка). Совместить решение задач из доп. занятий (школьная программа для этого не пригодна) с параллельным воспитанием культуры работы с данными и обучению алгоритмическим подходам. Речь идет не про чат-ботов в три строки, а о применении компьютера в рамках изначальной цели — проведение вычислений, проведение численных экспериментов, моделировании и выявлению скрытых зависимостей, на основании которых можно строить новые гипотезы.


Сразу отмечу, что тема будет интересна далеко не всем. Кому это неактуально — проходите мимо. У кого будут доп. идеи, было бы интересно тоже ознакомиться. Далее будет ряд задачек, которые были позаимствованы с курсов «Меташколы», математика 3-ий класс. Естественно, что сначала задача решается логическими рассуждениями, потом обсуждается способ решения с применением компьютера.


Важные дополнения по результатам обсуждений ниже:


  1. Материал написан с позиции родителя, а не преподавателя. Здесь нет услуг и пиара. Здесь просто набор практических соображений.
  2. В качестве инструмента использовался R потому что так было удобнее.

Является продолжением предыдущих публикаций.


Общая преамбула


library(tidyverse)
library(glue)
library(magrittr)
library(lubridate)
library(hms)
library(numbers)
library(polynom)
library(Ryacas)
library(stringi)
library(tictoc)

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


Восстановите запись


Задача


Восстановите запись: 3??:?3=3?. Найдите сумму всех пропущенных цифр.


Пример решения
# Преобразуем 3ab = c3*3d

df <- 0:9 %>% 
  {tidyr::crossing(a = ., b = ., c = ., d = .)} %>%
  filter(300 + a * 10 + b == (c * 10 + 3) * (30 + d))
df

Задача


Можно ли расставить знаки арифметических действий вместо “?” в записи 7?(7?7?7)?7, чтобы получить 8?


Пример решения
ops <- c('*', '/', '+', '-')
# соберем все возможные комбинации операндов
df <- tidyr::crossing(op1 = ops, op2 = ops, op3 = ops, op4 = ops) %>%
  # теперь сформируем команды для каждой комбинации переменных
  mutate(data = glue::glue("7 {op1} (7 {op2} 7 {op3} 7) {op4} 7"),
         expr = rlang::parse_exprs(data)) %>%
  mutate(res = purrr::map_dbl(expr, rlang::eval_bare)) %>%
  arrange(res) %>%
  filter(res == 8)
print(tbl_df(df), n = 20)

Задача


Подряд выписаны все числа от 1 до 100. Сколько раз в записи встречается цифра 4?


Пример решения
# в 100 нет цифры 4, поэтому редуцируем верхнюю грань до 99
# нумерация слева направо
tidyr::crossing(d1 = 0:9, d2 = 0:9) %>%
  # оставим только значения, где есть 4
  filter(d1 == 4 | d2 == 4) %>%
  arrange(d1, d2)

Задача


Цифру 9, с которой начиналось трёхзначное число, перенесли в конец числа. Получилось число, которое на 216 меньше. Назовите сумму цифр первоначального числа.


Пример решения
# нумерация слева направо: abc
df <- tidyr::crossing(b = 0:9, c = 0:9) %>%
  # считаем разницу если 9 слева и девять справа 
  mutate(delta = (900 + 10*b + c) - (100*b + 10*c + 9)) %>%
  filter(between(delta, 200, 230))
df

Задача


Произведение 5 последовательных натуральных чисел равно 2520. Назовите меньшее число.


Пример решения, способ 1
numbers::primeFactors(2520)

Пример решения, способ 2
# https://joftius.wordpress.com/2015/10/19/finding-multiple-roots-of-univariate-functions-in-r/
f <- function(x) {x * (x+1) * (x+2) * (x+3) * (x+4) - 2520}
rootSolve::uniroot.all(f, c(0, 2520))

Пример решения, способ 3
eq <- "x * (x+1) * (x+2) * (x+3) * (x+4) - 2520"
yacas(glue("Simplify({eq})"))

# руками зададим коэффициенты  на основании упрощенного полинома и найдем все корни
rts <- base::polyroot(c(-2520, 24, 50, 35, 10, 1)) # от нулевой степени к n-1
# оставим только реальные корни
# http://www.johnmyleswhite.com/notebook/2009/12/18/using-complex-numbers-in-r/
Re(rts[abs(Im(rts)) < 1^-10])

Задача


Какую цифру можно поставить вместо "?", чтобы число 543? делилось на 4? Назовите все возможные варианты.


Пример решения
tibble(num = 5430 + 0:9, mod = mod(num, 4)) %>%
  arrange(mod, num)

Задача


Чему равна удвоенная треть четверти числа 60?


Пример решения
2*(1/3*(1/4*60))
60 %>% {./4} %>% {./3} %>% {.*2}

Задача


Циферблат часов без стрелок разделите на 2 части так что бы сумма чисел имеющиеся на каждом участке была одна и та же.
Доп. вопрос: на какое количество частей можно ещё разделить циферблат часов так, чтобы в каждой части находились числа сумма которых была бы равна между собой?


Пример решения
# поскольку речь идет о разбиении на 2 равные части, достаточно проанализировать 
# только половину пробега стрелки, вторая половина будет = остатку
sum(1:12) / 2

# вариант разбивки часов
for (i in 1:12){
  res <- cumsum(i:12)
  print(glue("Стартовая точка: {i}, накопительные суммы: {glue_collapse(res, ', ')}"))
  val <- which(res == 39)
  if(! identical(val, integer(0))){
    print(glue("Найден диапазон [{i}; {val + i - 1}]"))
  }
}

«Быки и коровы»


Вариация 1


В записи числа различные цифры от 1 до 5 включительно.
Число отгаданных цифр, стоящих на своих местах — это число быков. Число отгаданных цифр, стоящих не на своих местах — это число коров.


Назовите трёхзначное число, если известно:


  • 314 — 1 бык и 1 корова;
  • 124 — 1 бык и 1 корова;
  • 523 — 1 бык и 1 корова.

Пример решения
library(tidyverse)
library(stringi)
# число вида "an_bn_cn". c -- неоднозначность с функцией

df <- c(1, 2, 3, 4, 5) %>%
  {tidyr::crossing(an = ., bn = ., cn = .)} %>%
  # отдельно сформируем комбинации
  mutate(comb = purrr::pmap(., c)) %>%
  # оставляем только подходящие сочетания
  mutate(val = stri_join(an, bn, cn)) %>%
  # учитываем допустимую позиционную раскладку быков
  # 314 - есть 1 бык
  filter(stri_detect_regex(val, "3[^1][^4]|[^3]1[^4]|[^3][^1]4")) %>%
  # 124 - есть 1 бык
  filter(stri_detect_regex(val, "1[^2][^4]|[^1]2[^4]|[^1][^2]4")) %>%
  # 523 - есть 1 бык
  filter(stri_detect_regex(val, "5[^2][^3]|[^5]2[^3]|[^5][^2]3")) %>%
  # исключим сочетания с совпадающими цифрами
  filter(purrr::map_int(comb, n_distinct) == 3) %>%
  # учитываем наличие только двух чисел (1 бык и 1 корова)
  filter(purrr::map(comb, ~length(base::intersect(.x, c(3, 1, 4)))) == 2) %>%
  filter(purrr::map(comb, ~length(base::intersect(.x, c(1, 2, 4)))) == 2) %>%
  filter(purrr::map(comb, ~length(base::intersect(.x, c(5, 2, 3)))) == 2) 

df

Вариация 2


В записи числа различные цифры от 1 до 5 включительно.
Число отгаданных цифр, стоящих на своих местах — это число быков.
Число отгаданных цифр, стоящих не на своих местах — это число коров.
Назовите трёхзначное число, если известно:


543 — 1 бык; 0 коров;
235 — 1 бык; 0 коров.


Пример решения
library(tidyverse)
library(stringi)

df <- c(1, 2, 3, 4, 5) %>%
  tidyr::crossing(d3 = ., d2 = ., d1 = .) %>%
  # отдельно сформируем комбинации
  mutate(comb = purrr::pmap(., c)) %>%
  # оставляем только подходящие сочетания
  mutate(val = stri_join(d3, d2, d1)) %>%
  # учитываем допустимую позиционную раскладку быков
  # 543 -- 1 бык; 0 коров
  filter(stri_detect_regex(val, "5..|.4.|..3")) %>%
  # 235 -- 1 бык; 0 коров
  filter(stri_detect_regex(val, "2..|.3.|..5")) %>%
  # исключим сочетания с совпадающими цифрами
  filter(purrr::map_int(comb, n_distinct) == 3) %>%
  # учитываем наличие только одного быка
  filter(purrr::map(comb, ~length(base::intersect(.x, c(5, 4, 3)))) == 1) %>%
  filter(purrr::map(comb, ~length(base::intersect(.x, c(2, 3, 5)))) == 1) 

df

Заполняем квадрат


Можно ли расставить в клетках квадратной таблицы 4 на 4 десять минусов так, чтобы в каждом столбце было нечётное число минусов, а в каждой строке было чётное число минусов?


Пример решения, вариант 1
# в каждом столбце должно быть нечетное, а в сумме 10. Итоговая разбивка: 3, 3, 3, 1
library(arrangements)
library(foreach)

# пронумеруем все ячейки:
#  1  2  3  4 
#  5  6  7  8
#  9 10 11 12
# 13 14 15 16

cmb <- arrangements::combinations(1:16, k = 10, replace = FALSE)
pryr::object_size(cmb)

# сделаем через итератор, будем отбрасывать комбинации, которые не соотв. условиям
icomb <- icombinations(1:16, k = 10, replace = FALSE)
foreach(x = icomb, .combine=c) %do% {
  # x - вектор с номерами позиций, куда ставим знаки "минус"
  # считаем и проверяем условия для комибнаций
  # колонки
  isOdd <- function(x, set){
    # проверяем нечетность
    length(base::intersect(x, set)) %% 2 == 1 
  }

  isEven <- function(x, set){
    # проверяем четность
    length(base::intersect(x, set)) %% 2 == 0
  }

  col_flag <- all(
    isOdd(x, c(1, 5, 9, 13)),
    isOdd(x, c(2, 6, 10, 14)),
    isOdd(x, c(3, 7, 11, 15)),
    isOdd(x, c(4, 8, 12, 16))
  )

  row_flag <- all(
    isEven(x, c(1, 2, 3, 4)),
    isEven(x, c(5, 6, 7, 8)),
    isEven(x, c(9, 10, 11, 12)),
    isEven(x, c(13, 14, 15, 16))
  )

  if(col_flag && row_flag) print(x)
}

Пример решения, вариант 2
# в каждом столбце должно быть нечетное, а в сумме 10. Итоговая разбивка: 3, 3, 3, 1
library(tidyverse)
library(magrittr)
library(arrangements)
library(foreach)

# пронумеруем все ячейки:
#  1  2  3  4 
#  5  6  7  8
#  9 10 11 12
# 13 14 15 16

# сделаем через итератор, будем отбрасывать комбинации, которые не соотв. условиям
icomb <- icombinations(1:16, k = 10, replace = FALSE)
df <- foreach(x = icomb, .combine = rbind) %do% {
  # x - вектор с номерами позиций, куда ставим знаки "минус"
  # считаем и проверяем условия для комибнаций
  # создаем матрицу
  v <- rep(0, 16)
  # заполним единицами позиции, заполненные минусами
  # browser()
  v[x] <- 1
  m <- matrix(v, nrow = 4, ncol = 4, byrow = TRUE)
  # проверяем условие: в каждом столбце нечётное число минусов, 
  # а в каждой строке чётное число минусов
  if (all(colSums(m) %% 2 == 1) && all(rowSums(m) %% 2 == 0)) 
    x else NULL
}

df %<>% as_tibble(.name_repair = "minimal")

# а так можно посмотреть конкретную раскладочку
v <- rep(0, 16)
# заполним единицами позиции, заполненные минусами
v[purrr::flatten_int(df[5, ])] <- 1
matrix(v, nrow = 4, ncol = 4, byrow = TRUE)

Комбинаторика


Задача


Сколько различных комбинаций из букв, в которых две одинаковые буквы не стоят рядом, можно составить, переставляя буквы К, А, Ш и А ?


Посмотрим на различные соображения Generating all distinct permutations of a list in R


Пример решения
# Разбиваем строку на символы
# https://stackoverflow.com/questions/44918645/split-a-string-into-character-efficiently
lset <- unlist(base::strsplit("КАША", split = "", fixed = TRUE))
# для наших задач честная разбивка не подходит, нам нужно разные А иметь  
lset <- c("К", "А1", "Ш", "А2")
# library(permutations)

df <- tidyr::crossing(p1 = lset, p2 = lset, p3 = lset, p4 = lset)
ff <- function(...){
  vals <- rlang::list2(...)
  # browser()
  n_distinct(unlist(vals))
}
df %>% 
  # mutate(u = purrr::pmap_int(., ~n_distinct(.x)))
  mutate(u = purrr::pmap_int(., ff)) %>%
  filter(u == 4) %>%
  select(-u) %>%
  # соберем все обратно в строку
  mutate(s = purrr::pmap_chr(., stri_join)) %>%
  mutate_at(vars(s), stri_replace_all_regex, pattern = "(А\\d+)", replacement = "А") %>%
  distinct(s) %>%
  # исключим повторы букв А
  filter(!stri_detect_fixed(s, "АА"))

Задача


Сколько воскресений может быть в году? Назовите наибольшее возможное число.


Пример решения
# берем високосный год, считаем полное число недель
366 %/% 7
# поглядим на остаток. В максимальном случае он должен попасть на воскресенье
366 %% 7

Задачка про пиратов


Пираты: A, B, C
Высказывание 1
A: У B 2 глаза
B: У C 2 глаза
C: У A 2 глаза


Высказывание 2
A: У нас на всех 2 глаза
B: У нас на всех 3 глаза
C: У нас на всех 4 глаза


Каждый пират наврал столько раз, сколько у него глаз. Сколько глаз у каждого пирата?


Пример решения
df <- tidyr::crossing(a = 0:2, b = 0:2, c = 0:2) %>%
  mutate(total = a + b + c) %>%
  mutate(a_lie = (b != 2) + (total != 2),
         b_lie = (c != 2) + (total != 3),
         c_lie = (a != 2) + (total != 4)) %>%
  filter(a_lie == a, b_lie == b, c_lie == c)
df

И т.д. и т.п.


Для кого-то это может оказаться поводом провести время со своим ребенком.


Предыдущая публикация — «Несколько соображений по поводу параллельных вычислений в R применительно к «enterprise» задачам».

Комментарии (79)


  1. Victor_D
    05.08.2019 21:53

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


    1. i_shutov Автор
      05.08.2019 22:24

      Задачки являются только началом диалога. Часть вариантов решений возникла при обсуждении тем с более старшими, да и просто из спортивного интереса. Конечно, все можно прощелкать и на Wolfram Mathematica или попытаться бездумно забрутфорсить. Но при масшабировании исходной задачи не везде и не всегда это уже будет возможно.


      1. Yak52
        06.08.2019 09:05

        По поводу брутфорса, а ничего, что большенство приведеных здесь решений на R решаються именно тупым перебором?


        1. i_shutov Автор
          06.08.2019 09:39

          Интересное наблюдение. Все активные выпады пишутся с множественными орфографическими ошибками.


          Ответ автору, наверное не нужен, а для всех остальных отвечаю — ничего для того, кто знает, как этот брутфорс предварительно "подрезать" и сократить.


          Ничего, что ряд задач в математике решается именно перебором? Классический пример — решение уравнений в целых числах.


          Кстати, ничего не мешает Вам написать решение ко всем этим задачам тем вариантом, который Вы считаете правильным на том языке, который "должен был быть применен" и сделать отдельную разгромную публикацию (!).


          1. Yak52
            06.08.2019 09:43

            Это не выпад. Выпад у вас по поводу «бездумного брутфорса» на Wolfram, но при этом использование его же при решении задач с помощью R.


            1. i_shutov Автор
              06.08.2019 09:50

              Э-э-х. Цитата: "Конечно, все можно прощелкать и на Wolfram Mathematica ИЛИ попытаться бездумно забрутфорсить."


              1. Yak52
                06.08.2019 09:54

                Согласен. Меня больше задел тот момент, что тот же самый «бездумный брутфорс» но с использованием R преподносится автором как гигантское достижение в обучении третьеклассников.


                1. i_shutov Автор
                  06.08.2019 10:02

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


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


          1. BkmzSpb
            06.08.2019 11:00

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


            Для демонстрации работы с данными и поиска зависимостей (с моей субъективной точки зрения) стоило бы добавить графиков, наглядно показывающих возможные решения. Например, в задаче 3??:?3=3? вы сразу же фильтруете результат, используя приведенное выше равенство, в то время как вычисление всех возможных комбинаций левой и правой части и их сравнение может помочь не только найти решение данной задачи, но и с легкостью перейти к более сложным ситуациям — например, неравенств подобного рода.


            По поводу "подрезания" брутфорса — было бы интересно увидеть вариант "подрезания" именно ваших решений, например, вместо перебора всех возможных значений возвращать только первую корректную комбинацию. Хоть я и пишу на R, элегантное решение в вашем стиле с урезанным брутфорсом для меня нетривиально, и пример такого решения был бы хорошей темой для дискуссии.


            Будучи адептом tidyverse и любителем пайпов, вызывает вопрос вот эта запись 60 %>% {./4} %>% {./3} %>% {.*2}. magrittr предоставляет набор выразительных функций, выполняющих арифметические операции. Запись могла бы выглядеть как
            60 %>% divide_by(4) %>% divide_by(3) %>% multiply_by(2)
            или, используя базовый пакет,
            60 %>% "/"(4) %>% "/"(3) %>% "*"(2)


            1. i_shutov Автор
              06.08.2019 14:44

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

              И для этого тоже


              Например, в задаче 3??:?3=3? вы сразу же фильтруете результат, используя приведенное выше равенство, в то время как вычисление всех возможных комбинаций левой и правой части...

              Ну в интерактиве именно так и было. После каждого шага можно рассматривать получающиеся результаты и обсуждать их. Только это делается выделением кода в RStudio и запуском только этого блока.


              По поводу "подрезания" брутфорса — было бы интересно увидеть...

              Один из элементарных примеров.


                A + B + C = DE

              Очевидно, что максимальная сумма может быть 9+8+7 = 22, т.е. D может равняться только 1 или 2.


              Будучи адептом tidyverse и любителем пайпов, вызывает...

              Согласен. Был приведен всего лишь один из способов. Ваши варианты тоже хорошие (только я бы писал через обратные кавычки имена функций). А еще есть pipe средствами data.table и путь Win-vector


              1. i_shutov Автор
                06.08.2019 21:44

                Вот до чего доводит, когда текст разбивается на части звонками… Коллега обратил внимание на такой ляп. Тут "-" совершенно правильно поставили.
                9+8+7 = 24, Карл.
                Хотя сдается мне, что это не из-за ошибки, а snamef так знатно завершил монолог и методично пробежался с -1 по всем комментариям.


                1. snamef
                  06.08.2019 22:32

                  чего, я голосовать не могу вообще то


                  1. i_shutov Автор
                    07.08.2019 07:38

                    тогда прошу извинить.


                    Кстати, комментарий напомнил мультфильм "Буревестник". 5 приятных минут гарантированы.


  1. akryukov
    06.08.2019 01:29

    кому раздают все эти упражнения — ребенку или родителям?

    Цитата из статьи применима и к статье.
    Задачки довольно любопытные, но кажется слишком сложные для 3 класса. Попробуйте проанализировать, что должен уметь человек, чтобы он смог решить эти задачи самостоятельно?
    Думаю что для общего развития эти задачи достаточно решить с помощью карандаша и бумаги.


    1. i_shutov Автор
      06.08.2019 06:36

      Я не имею прямого отношения ни к школе, ни к олимпиадному движению. Но много лет являюсь активным сторонним наблюдателем. Материал является результатом экспериментов и дан исключительно в качестве идеи. Кому интересно заниматься с детьми, может попробовать еще один способ.


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


      1. akryukov
        06.08.2019 07:57

        Материал является результатом экспериментов и дан исключительно в качестве идеи.

        Экспериментов над кем? Опишите контрольную группу, пожалуйста.
        Сколько человек справлялись с этими задачами?
        Какая задача вызывала наибольшие трудности?
        Какие подсказки лучше всего давать, чтобы помочь, но не сделать всю работу вместо учащихся?


        1. i_shutov Автор
          06.08.2019 08:20

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


          Я не имею отношения к школе. Хотя приходится и на конференциях выступать и курсы читать "для взрослых". Кстати, не стоит недооценивать детей. Со взрослыми бывает даже все гораздо хуже, порой на совещаниях даже невозможно объяснить, что 2+2=4.


  1. surVrus
    06.08.2019 01:53
    +1

    Можно ли расставить знаки арифметических действий вместо “?” в записи 7?(7?7?7)?7, чтобы получить 8?

    Мне были интересны подобные задачи по математике. Немного изучал разные задачи разных классов по математике в школах России и Польши. Задачи можно условно разделить на группы по их внутренней логике, по используемым методам постановки задачи.
    В один прекрасный момент стало интересно: какова цель таких задач в обучении детей?
    И тут ответы очень интересные, неожиданные и часто нетривиальные. Например, особенно это касалось задач в школе Польши, разных задач со степенями чисел. Хотя там много наворотов, каких-то скобок, часть задач сделаны в виде интерактивных программ, что-то надо считать в Excell. Но при анализе самих задач стала видна их реальная цель: счет в уме. Быстро, бездумно, на основе памяти таблицы умножения и частично примитивных правил раскрывания скобок. Это и прибило: вроде бы математика, вроде бы что-то типа важное. А реально — просто надо быстро уметь складывать и умножать в уме числа.
    Поэтому прежде всего, при обучении, было бы интересно видеть, зачем именно нужна задача или группа задач. Зачем нужна для ученика? Какие навыки, свойства мышления они развивают? И желательно с практической точки зрения, где и как применять…
    Почему мне кажется это важным: если человек нуждается в инструменте для решения практической задачи, если этот инструмент ему необходим — то он изучит и математику, и нечеткую логику и черта лысого.
    А если задачи чисто абстрактные (или с неоднозначными целями) — то их решение наверное что-то развивает, у каких-то отдельных людей. Это тоже неплохо. Но обычно знакомые детки плюются и негативно относятся к математике. Хотя если давать задачки и математику иначе, именно от практики и конкретных задач из их реальной жизни — то им становится интересно и скорость обучения растет в разы. Я пробовал такие методы на разных людях и возрастах: от 12 лет до 50. Те, кто категорически не понимал и не хотел понимать математику — начинали ее постигать. Поэтому мне и интересно, при создании учебных курсов и программ люди, их создающие, как-то анализируют и представляют себе цели таких задач и обучения? Не просто написать вначале курса «цель курса — развитие логического мышления». А как именно вот эта задача какой именно элемент логического мышления развивает?


    1. i_shutov Автор
      06.08.2019 06:25

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


      Устный счет и приближенные вычисления — это такой же элемент культуры, как положить мусор в бак.


      1. surVrus
        06.08.2019 12:09

        статистика и комбинаторика почти во всех вузах, где читается, является мертвым блоком.

        И вполне понятно почему. Именно статистика. Применение методов математической статистики весьма ограниченно и должно быть обоснованно и доказано. Например, нельзя использовать нормальное распределение и все, что на нем построено в экономике. По большому счету, 99% аппарата математической статистики нельзя использовать в экономике. Это обосновано еще Бенуа Мандельбро более 50 лет назад. Экономисты согласились И что? Все равно во многих ВУЗах на курсах экономики множество блоков статистики. И нет совсем методов нечеткой логики, теории систем, нелинейной динамики.
        Или хоть какой-то анализ данных экономики с точки зрения метрологии — нет, этого нет ни в одном курсе экономики.
        Про философию и теорию науки, эпистемологию, логику — вообще не стоит упоминать. Нет этого в ВУЗах или есть, но криво и косо.
        Учителя очень отстали в своем развитии, причем на принципиальном уровне.

        Устный счет и приближенные вычисления — это такой же элемент культуры, как положить мусор в бак.
        Супер! Благо дарю! Великолепная метафора, очень понравилось! Совершенно согласен.

        Кстати, результат плохого преподавания математики (очень образно...)
        LINDEMANN «Mathematik»
        и перевод текста


  1. snamef
    06.08.2019 02:06
    +3

    df <- 0:9 %>%
    {tidyr::crossing(a = ., b = ., c = ., d = .)} %>%
    filter(300 + a * 10 + b == (c * 10 + 3) * (30 + d))
    df

    ААААААААААААААААААААААААААААААААААА какой вырвиглаз
    ненадо детям давать дибильные задания на корявом языке, пожалейте давайте хотя бы на Питоне.

    последняя задача решается устным перебором.

    Заголовок спойлера
    начав с предположений что кто то слепой, исключил 3 варианта со слепыми нашёл устным перебором A= 1, B=2, C=1


    1. i_shutov Автор
      06.08.2019 06:22

      1. Орфография хромает на все ноги.
      2. Все задачи решаются устным перебором.
      3. Это иллюстрация, которую можно развернуть в более понятный вид. Кстати, это как раз пример для разговора про ФП, которое Вы любите.
      4. И что питон? В тривиальных задачах все языки могут использоваться как Бейсик. А промышленный питон совершенно нетривиален. Но ни питон, ни R не могут иметь больший приоритет, чем изучение русского языка и литературы.


      1. AndreyDmitriev
        06.08.2019 09:07
        +1

        В защиту предыдущего оратора (безотносительно орфорграфии), хотелось бы отметить, что в контексте третьего класса это действительно вырвиглаз. Дело тут в том, что за вот этим вот «tidyr:crossing...» стоят недели работы с R. Вы, судя по всему, «думаете» на этом языке, потому что хорошо им владеете. Это знание у третьеклассников отсутствует. Ну это всё равно что придти в немецкую школу и выкатить решение на русском языке. Ну то есть, тут ещё требуется научить детей языку, а основная задача — научить их прежде всего мыслить алгоритмически безотносительно языка.
        Я вот в программировании больше двадцати лет, но и мой глаз зацепился за «df < — 0:9 %>% ». Ну то есть я могу понять примерно что тут у чему и зачем оно надо, но если вы попросите написать меня это с нуля, то я полезу в гугль. Ну вот попробуйте это всё переложить на язык, которым вы не владеете, (тут мне сложно судить, ну скажем на хаскель, скала, или там LabVIEW)… Я это к тому, что задачки в общем-то может и неплохие, но инструмент не для третьеклассников. Хотя, конечно, решение в четыре строчки — это красиво и элегантно, но оценят-ли десятилетние дети эту красоту?
        Когда мои дети были в третьем классе, я им подсунул Scratch. Полгода мы писали забавные программки, потом забросили это дело. LabVIEW вообще не пошёл. Сейчас один ребёнок пишет книгу, а второй — играет в лего и на пианино. Им это нравится, и я для себя решил, что забивать им в головы R и LabVIEW — это просто лишить их детства. Я их ненавязчиво подталкиваю, подсовывая книжки, программки и т.д., но у них полная свобода выбора и вот я уже сейчас вижу, что программистами они явно не будут.
        Что касается образования, то в начале года как-то вечером я был влёт сбит вопросом ребёнка «пап, мы тут статистику начали изучать, вот есть среднее, а есть медиана, и вот почему они иногда почти равны, а иногда сильно отличаются?» Это середина пятого класса. Насколько я себя в пятом помню, у нас всё попроще было…


        1. i_shutov Автор
          06.08.2019 09:25

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


          Scratch жутко неудобный и не пошел. Летом не везде интернет можно найти, scratch 2.0 ubuntu не поддерживает нативно, поставить его хаками удалось (adobe air того...), но неудачных экспериментов было на день. + запускать из терминала не весело и не для ребенка. Кстати, мультфильмы оказалось гораздо интереснее делать по-настоящему. Со сценой, персонажами, раскадровкой. А потом монтировать и озвучивать. Sratch рядом не стоял.


          LabView — тот еще инструмент. Мультипликация сигналов интересна, но вот написать пару вложенных циклов и понять как это работает, еще то удовольствие.


          Кто сказал, что речь о воспитании программистов? В публикации только то, что в теме хабра. Ну не обсуждать же здесь музыку, живопись, лего, игры, самокаты, литературу, мультфильмы, различные поделки, кулинарию, фото и прочее?


        1. snamef
          06.08.2019 12:22

          +.
          Если програмисту среднего уровня не понятно без знаний языка что там написано то это быдлосинтаксис. и что значит не только %>% но и tidyr::, purrr::, tibble, 366 %/% 7
          366 %% 7 создатель языка очень любил символ %


      1. snamef
        06.08.2019 12:09

        Кстати, это как раз пример для разговора про ФП
        скорее декларативного программирования. Ну не давать же детям Пролог? Или можно? Вырастут такими гениями яйцеголовыми )))
        Но ни питон, ни R не могут иметь больший приоритет, чем изучение русского языка и литературы.
        мощно сказанул. И какая большая польза будет от русской литературы чем от информатики?


        1. i_shutov Автор
          06.08.2019 14:30

          Прочел, но я оставляю за собой право далее игнорировать все Ваши комментарии, они невежливы и неинтересны.
          Возможны Вы пропустили текст в самом начале, а там было явно написано:
          "Сразу отмечу, что тема будет интересна далеко не всем. Кому это неактуально — проходите мимо."


    1. kasyachitche
      06.08.2019 08:45

      Почему python? Почему не scilab? Pascal? Fortran?


      1. i_shutov Автор
        06.08.2019 08:50

        • Go\Julia


  1. Kron7
    06.08.2019 05:45
    +3

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

    Далее будет ряд задачек, которые были позаимствованы с курсов «Меташколы», математика 3-ий класс. Естественно, что сначала задача решается логическими рассуждениями, потом обсуждается способ решения с применением компьютера. В качестве инструмента использовался R.
    Вы действительно предлагаете третьеклассникам изучать языки программирования на уровне решения данных задач?

    Далее будет ряд задачек, которые были позаимствованы с курсов «Меташколы», математика 3-ий класс. Естественно, что сначала задача решается логическими рассуждениями, потом обсуждается способ решения с применением компьютера. В качестве инструмента использовался R.
    Было бы неплохо увидеть эти рассуждения в данной статье. И особенно интересен переход от логики к применению языка программирования))

    Далее будет ряд задачек, которые были позаимствованы с курсов «Меташколы», математика 3-ий класс.
    Для начала однозначно скажу, что большинство приведенных тут задач совершенно не по силам для 3-го класса. Вы знаете, какая самая сложная тема в 3-ем классе? — Деление в столбик в пределах 1000))

    Разве что задачи 3 и 7 по силам для 3-его класса.

    Задачи 1, 2, 4, 5, 6, 8, задача про квадрат и первая задача из комбинаторики точно нужно обозначать звездочкой и даже при этом они будут довольно сложными для 3-его класса. И если какому-то уникуму и получится их решить, то исключительно перебором, а не логикой, что сильно уменьшает их ценность.

    А задачи про «быков, коров» и «пиратов» ученик 100% не поймет вообще!

    Также интересно почему задачу про количество воскресений в году вы занесли в раздел «комбинаторика»?


    1. i_shutov Автор
      06.08.2019 06:14

      1. Я ничего однозначно говорить не буду, поскольку все живут в разных реальностях. Тут описан тот срез, который виден мне.
      2. Это действительно задачи для 3-го класса, можно подписаться на эти занятия и все их увидеть. Не реклама школы, а просто констатация факта. Да, они носят олимпиадный характер. Кстати, можно запросить гугл и удивиться.
      3. Это же всё классические задачи, их логическое решение разобрано миллионы раз в соотв. книжках, например, здесь. Я отнес публикацию к программированию, поэтому и показал только эту часть. Насчет перехода все тривиально. Задачи — просто повод для обсуждения подходов к алгоритмизации на примере уже решенной задачи. А как можно попробовать решить эту задачу на компьютере? А если задача увеличится в масштабе на 3-4-5 порядков?
      4. На самом деле талантливых детей очень много. Но 11 лет зубрежки в школе нивелируют этот факт. Вы знаете, чем занимаются в 11-м классе? Вообще НИЧЕМ! Весь год натаскиваются на ЕГЭ и ездят сдавать тесты. 10 лет обучения было мало, ввели 11. Кстати, и 9-ый класс похож на 11, только там УГЭ.
      5. Быки и коровы непонятны? Да это же классика! А еще есть такая популярная игра. Дети могут решать на раз-два. Даже 5-ти летки (по простому варианту, ест-но)
      6. Воскресенье можно занести в раздел работы с календарем. Есть целый пул подобных задач.
      7. А еще есть такие интересные игры.

      Кстати, еще ряд задач, хорошо демонстрируются с помощью Лего (фото с календарем потерял). Взрослые тоже используют этот метод, например так. Ряд комбинаторных задач хорошо демонстрируются подручными материалами, камушками, палочками.


      1. Kron7
        07.08.2019 05:11
        +1

        Это действительно задачи для 3-го класса, можно подписаться на эти занятия и все их увидеть. Не реклама школы, а просто констатация факта. Да, они носят олимпиадный характер. Кстати, можно запросить гугл и удивиться.
        Давайте будем честными, то, что эти задачи МетаШкола называет задачами для 3-его класса, совсем не обязательно таковыми являются)) Например, задача 6 — это типичная (не-олимпиадная) задача для 6-го класса, ибо признаки делимости учат в 6-ом классе.

        Это действительно задачи для 3-го класса, можно подписаться на эти занятия и все их увидеть. Не реклама школы, а просто констатация факта. Да, они носят олимпиадный характер. Кстати, можно запросить гугл и удивиться.
        В том то и дело, что олимпиадный. Кстати, из статьи я так и не понял, что именно вы предлагаете: игнорировать школьные занятия по математике, и вместо этого решать с ребенком олимпиадные задачи (сначала на листике, а потом и на компе)?

        Это же всё классические задачи, их логическое решение разобрано миллионы раз в соотв. книжках
        <...>
        Быки и коровы непонятны? Да это же классика!
        Классика для кого? Для [толкового учителя / прошаренного родителя] или для [третьеклассника, которому они и предназначены]? Вся ценность олимпиадных задач теряется, когда учитель/родитель начинает их разжевывать для ученика. Ведь что такое олимпиадная задача? Это задача, способ решения которой не объясняется в школьной программе, не более того.

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

        Поэтому «правильная» олимпиада — это когда ученик без доп. подготовки пытается за 4 часа решить несколько не-школьных (олимпиадных) задач, используя лишь школьные знания и свой творческий потенциал. Только в такой олимпиаде есть смысл. А если ученика предварительно натаскали на вот таких вот классических олимпиадных задачах, и на олимпиаде он решил их и занял призовое место, то грош цена такому результату. Ведь он не сам додумался, а его научили.

        Я отнес публикацию к программированию, поэтому и показал только эту часть. Насчет перехода все тривиально.
        Вовсе нет. Вот вы объяснили решение задачи на листике. Далее как вы собираетесь третьекласснику объяснить решение этой задачи на пк с использованием какого-либо языка программирования, когда он вообще ничего не знает о программировании?

        На самом деле талантливых детей очень много. Но 11 лет зубрежки в школе нивелируют этот факт.
        По поводу зубрежки, если говорить о технических предметах, я соглашусь только в плане требования зубрить невообразимое количество формул, аксиом, теорем и пр. справочной информации, которая является общедоступной. Это, конечно, полный фейл! Хорошо хоть таблицу Менделеева и таблицу значений тригонометрических функций стандартных углов не заставляют выучивать))

        А еще есть такие интересные игры.
        Может лучше ребенка научить играть в шашки и шахматы?))

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


        1. i_shutov Автор
          07.08.2019 06:08

          Я одного понять не могу. Все бросились активно со мной спорить, что-то доказывать, ставить "как бы" каверзные вопросы и сливать свой негатив. Хотя это совершенно бессмысленно, я просто поделился одной из идей и элементами ее практического применения. И способов реакции могло быть быть множество, но совсем не тех, что были "налиты" в комментариях. Замечу, что за исключением 2-х человек никто ничем не поделился и никакого своего опыта не высказал, в итого все превратилось в одно нытье.


          1. Если вы родитель, то сами определяете, чему учить ребенка, как с ним заниматься и во что играть. Хотите — в шашки, хотите — в лего, до определенного возраста ребенок зависит от родителей. Считаете олимпиадные задачки сложными — не решайте. Есть способности у ребенка — почему бы и не развивать.


          2. Если вы учитель — смотрите на свои классы, на способности детей, на ожидания родителей. Болеете профессией — будете искать новое. Отсиживаете с мукой часы — результат будет соответствующий.


          3. Если вы абстрактный теоретик, то, может свою семью начать строить? Конкретно эта публикация никак не для кидалтов.



          Хотите научить ребенка чему-либо, будете искать доходчивые пути как это сделать. Не хотите, будете искать объяснения почему это делать не стоит. Кстати, а имеет ли кто-либо из участников обсуждения актуальное знание о существующих олимпиадных движениях? Видели детей? Кто-нибудь знает, каким потом и усилиями достигают результатов, чтобы так пренебрежительно высказываться? Какие страсти кипят на всех уровнях? Кто-нибудь представляет, что значит для ребенка сходить на апелляцию всероссийского этапа и отбить некорректно сниженные баллы?


          Меня, например, поражает вопрос Andy_U "Вы действительно считаете, что задача собрать из чисел 2, 2, 2, 3, 3, 5, 7 пять последовательных натуральных чисел проще исходной?"


          Это вообще что? Это программист-математик спрашивает? Как из семи чисел сделать пять последовательных? Взрослый не сможет ребенку показать как это сделать? Зато про робототехнику, AI\ML и прочие штуки готовы обсуждать и обсуждать. Хотя если базис отсутствует, то кроме магического или комиксного мышления ничего не будет. Или тут о другом речь?


          И что, аудитория Хабра считает такую задачу непосильной? А игра "Mastermind" на которую я давал ссылку (кстати, в советское время она была очень популярна) тоже непосильна?


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


          Вообще, что-то здесь пошло не так. За аудиторию реально стыдно становится.


          1. akryukov
            07.08.2019 06:27

            Вы вроде бы правильно говорите про то, что учителю нужно искать подходы к объяснению материала для конкретного ребенка. Но при чем тут ваши задачки?
            Задачи для преподавателя это такой же инструмент, как язык программирования для разработчика. У каждого инструмента есть "применимость", в том числе у ЯП и у задачек. Например R хорош в анализе данных, но вряд ли применим для стриминга видео.
            Соответственно, у задачек тоже есть применимость. Каким то группам людей они подходят, а каким то нет. У вас применимость не описана, поэтому статья выглядит как "вот у меня есть очень сложный инструмент, но как и где его использовать, думайте сами".


            1. i_shutov Автор
              07.08.2019 06:50

              Ну а вопрос то в чем?


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


              И инструмент здесь не расписывается, просто он был использован. Хотите, работайте с Makita, хотите — Bosh, хотите — DeWalt. Главное, чтобы навыки были.


              Все это было указано ремаркой до habracut.


              Журнал "Квант" кто-нибудь еще помнит?


              1. akryukov
                07.08.2019 08:05

                Но тут ведь не методическое указание из минобра, о чем было сказано в первых двух абзацах.

                Сейчас еще раз прочитал первые два абзаца. Нет там такого. В третьем тоже нет соответствующего disclaimer'а.


                Общее впечатление, что пришел такой "дядя из индустрии" и говорит: "hold my beer. Щас я вам покажу, как правильно учить третьеклассников".


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


                Не хочется думать, а хочется получить пошаговое руководстве к действию?

                Знаете, было бы неплохо. Потому что хабр читают не только профессиональные преподаватели, но и просто родители. Они видят, что вы советуете заниматься с ребенком олимпиадными задачами, и могут воспринимать это как руководство к действию: "На хабре ведь пишут, что с третьеклассниками нужно заниматься вот этим, чем мой ребенок хуже?".
                Лично я пойму что, кому и когда задавать, но у меня есть опыт в преподавании. У обычных родителей вряд ли такой есть. Я вижу, что вы предлагаете сложную жесть, а для обычных родителей это может быть неочевидно.


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


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

                Задачи это и есть инструмент преподавателя. Моя мысль была в том, что вы недостаточно подробно описываете применимость инструмента в виде задач.


                1. i_shutov Автор
                  07.08.2019 09:00

                  1. Интересно обсуждать про движение вверх, ибо это сложно. Downgrade ребенок сделает сам, дайте ему в руки телефон и ссылайтесь на свою постоянную занятость.
                  2. Я не советую заниматься олимпиадными задачами. Я не советовал читать далее вступления тем, кому оно не подойдет. И вообще я никому ничего здесь не советую, благо взрослые люди тут.

                  Чем ходить вокруг да около, дайте честный ответ на три вопроса:


                  • у Вас есть дети? в контексте публикации дети соотв возраста (9-11?)
                  • Вашему ребенку тема математики и программирования близка и интересна?
                  • Вы планируете активное участие в поддержании этого интереса и развития таланта?

                  Если будет хотя бы один ответ "нет", то зачем кипятить мировой океан и заботиться о всем человечестве и ни о ком конкретно? Если все "да", то у Вас есть в голове какой-то план действий и Вы в поиске. Если есть реальные вопросы, то можно в личном контакте их и обсудить. Может что смогу полезного подсказать.


                  1. akryukov
                    07.08.2019 09:33

                    Интересно обсуждать про движение вверх, ибо это сложно. Downgrade ребенок сделает сам, дайте ему в руки телефон и ссылайтесь на свою постоянную занятость.

                    С каких пор мир у нас черно-белый?
                    Вы помимо "дать телефон в руки" и "грузить олимпиадными задачами" других вариантов не видите?


                    Я не советовал читать далее вступления тем, кому оно не подойдет.

                    Вы не описали кому оно подойдет.


                    дайте честный ответ на три вопроса:

                    Нет. Нет, т.к. п1. Нет, т.к. п1.
                    Но почему вдруг ответ "нет" на эти вопросы лишает меня права голоса по теме, в которой я разбираюсь? Точно так же, ответ "да" на все три не превращает вас в эксперта по педагогике. Следовательно вопросы нерелевантны.
                    Допустим вы узнали, что у меня нет детей. Стала ли ваша статья от этого лучше?
                    Станет ли она лучше, если вы подробнее опишете целевую аудиторию и рассуждения для перехода от логического решения к программированию? На мой взгляд — да.


                    1. i_shutov Автор
                      07.08.2019 09:40

                      про варианты отвечал тут: https://habr.com/ru/post/462619/#comment_20476009


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


                      если Вас интересует готовое решение, поищите платные курсы, Алгоритмика или еще что-то. Но там люди делают это за зарплату, а не в свободное от всех остальных дел время


                      1. akryukov
                        07.08.2019 11:04

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


                        Сможете ли вы тогда обосновать целесообразность трудозатрат, потраченных на написание статьи?


                        Здесь я консолидировал набор интересных задач, просеянных в течении года.

                        По какому принципу отсеивали?


                        1. i_shutov Автор
                          07.08.2019 11:13

                          Вам нужно описать целесообразность трудозатрат… Без этих трудозатрат, статья неприменима для обычных родителей с целью обучения своих детей.

                          И что дальше? Видимо, Вы пропустили. Я не преподаватель, я выступаю с родительской стороны и мне ничего не нужно. Нужные мне вещи находятся за пределами этого мрачного обсуждения.


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


                          1. akryukov
                            07.08.2019 11:24

                            Так зачем вы писали статью?
                            Судя по предыдущим вашим статьям, чтобы популяризовать R. Мне в целом любопытно почитать про него. Но конкретно в этом случае вы залезли в область, где его применять нецелесообразно.


                            1. i_shutov Автор
                              07.08.2019 11:28
                              -1

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


                              если у кого-то не получается, то при чем здесь я?


                  1. surVrus
                    07.08.2019 12:43

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

                    У моих детей как раз наоборот. Я аккуратно направил их на конкретную задачку из жизни. Точнее сказал, что реальная задачка (проблема) из их жизни может быть решена вот таким методом, близким к математике. А как — «гугл твой друг, мне некогда...» типа сам разбирайся. И только немного помогал найти методологию решения, чуток подсказал ключевые слова. Детеныши сами все быстро раскумекали и сделали. Причем даже не теми методами, что я предлагал. Нашли хуже методы, но освоили их быстрее. В результате — решение найдено, но не лучшим методом, зато быстро.
                    Я доволен.


                    1. i_shutov Автор
                      07.08.2019 12:51

                      Это здорово.
                      Но я не про гугл говорил (это полезно), а про игры. Есть печальная тенденция, когда дети (взрослых я не трогаю) просто выпадают из жизни в РПГ и прочие игры.


                      Это реальная беда. У многих знакомых наблюдаю такую проблему разной степени тяжести.


          1. Kron7
            07.08.2019 08:54

            Я одного понять не могу. Все бросились активно со мной спорить
            В споре рождается истина. Разве нет?))

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

            Все бросились <...> сливать свой негатив.
            <...>
            все превратилось в одно нытье
            Вы решили в ответе на мой коммент охватить всех комментаторов вашей публикации. Не знаю на счет всех, каждый коммент не читал, но я задавал конкретно интересующие меня вопросы и предоставлял критику, где считал нужным. Если в этом вы видите негатив и нытье, то могу лишь сделать вывод, что вы просто не умеете слышать других.

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

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

            Кто-нибудь представляет, что значит для ребенка сходить на апелляцию всероссийского этапа и отбить некорректно сниженные баллы?
            Молодец, похвастался image

            Кстати, а имеет ли кто-либо из участников обсуждения актуальное знание о существующих олимпиадных движениях? Видели детей? Кто-нибудь знает, каким потом и усилиями достигают результатов, чтобы так пренебрежительно высказываться? Какие страсти кипят на всех уровнях? Кто-нибудь представляет, что значит для ребенка сходить на апелляцию всероссийского этапа и отбить некорректно сниженные баллы?
            <...>
            Вообще, что-то здесь пошло не так. За аудиторию реально стыдно становится.
            Теперь все понятно)) У автора накипело, он решил предложить на хабре свое виденье обучения третьеклассников математике, которое большинству не понравилось, автора заминусовали, и он обиделся на всех… Хэппи энд :)


            1. i_shutov Автор
              07.08.2019 09:18
              -1

              1. Не во всех спорах рождается истина. А если делиться никто не хочет, то это уже даже не спор, а допрос.


              2. Один консолидированный ответ на пачку комментариев.


              3. На Ваши вопросы я постарался максимально ответить. Если что-то осталось без ответа, можете еще задать.


              4. Чего все ждут? Ну возьмите любимый питон и напишите решение этих же задач в том стиле, что нравится. Что тут неполного? Есть заочные школы, есть задачи, есть классические логические решения, но можно попробовать и ознакомить ребенка с проверкой\решением с помощью компьютера. Не хотите — не делайте, переложите на репититора, напишите жалобу директору школы…


              5. Чем и где конкретно я хвастался? В олимпиадном движении тысячи людей, подготовка к олимпиадам — тяжелый труд. И преподавателей и детей. Я знаю по отдельным олимпиадам пофамильно несколько случаев, когда дети ходили на защиты, когда детей сбрасывали с пьедестала (самый больной вариант — ребенка объявили призером или победителем на всеросе, поздравили на сцене по окончанию тура, а через пару дней провели уточняющую корректировку границ отсечки и исключили его). Это факты, которым можно найти официальное подтверждение.


              6. Я нигде двойного дна не закладывал. Вы же не спорите с задачниками и решениями в конце? Рамки очерчены до предела конкретно. Домысливать и дорисовывать какие-то соображения и мысли нет необходимости.


              7. Оценки тут мне безразличны. Огорчило то, что все превратилось в типичный сценарий "родительского собрания".



              1. kablag
                07.08.2019 13:27

                На правах открытого письма.

                Илья, давно слежу за вашими публикациями по R и с удивлением вижу, что эта оказывается в топе обсуждаемых :) Получается, в других публикациях по R максимум с десяток комментариев: неужели всех так затронуло упоминание детей?

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

                Претензии по выбору языка довольно странные. Текст опубликован в тематическом хабе. Не все любят принципы tidyverse, но может в этом и некий плюс примеров – из них можно почерпнуть много нового.

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

                А Вам, Илья, спасибо за труд по продвижению R в массы :)


                1. i_shutov Автор
                  07.08.2019 13:38

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


                  Не подозревал, что так подорвет.


          1. Andy_U
            07.08.2019 10:43

            Меня, например, поражает вопрос Andy_U «Вы действительно считаете, что задача собрать из чисел 2, 2, 2, 3, 3, 5, 7 пять последовательных натуральных чисел проще исходной?»

            Это вообще что? Это программист-математик спрашивает? Как из семи чисел сделать пять последовательных? Взрослый не сможет ребенку показать как это сделать?

            Да, я считаю, что задача:

            Поделить набор из N положительных целых чисел на M<N непустых групп, так, чтобы произведения чисел в этих группах были последовательными целыми числами.

            И алгоритмически и выислительно сложнее исходной:

            Проверить, что положительное целое число может быть представлено произведением M последовательных положительных целых чисел.

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

            P.S. И прекращайте играть в угадайку. Вы не угадали ни моего образования, ни моей нынешней специальности.


            1. i_shutov Автор
              07.08.2019 10:55

              1. базовый навык из школьного курса арифметики — разложение на множители, поиск НОД и НОК.
              2. Я достаточно тут приводил примеров. Хотите — напишите свое решение, что просто манифестировать?
              3. Вовсе не гадаю, можете представиться. Кроме ника нет ничего.


              1. Andy_U
                07.08.2019 13:17

                1. базовый навык из школьного курса арифметики — разложение на множители, поиск НОД и НОК.

                Какое отношение наибольший общий делитель и наименьшее общее кратное имеют к комбинаторной задаче (моя первая формулировка)? Да и к исходной тоже?

                2. Я достаточно тут приводил примеров. Хотите — напишите свое решение, что просто манифестировать?

                Я в состоянии написать код для решения задаччи в Вашей исходной постановке с временем работы O(log(M)). Могу и в комбинаторной, но и кода будет сильно больше, и время решения тоже будет больше. Но это, очевидно, не будет доказательством правоты моей научной гипотезы. А вот вы можете попытаться доказать мою неправоту, приведя более короткое и эффективное решение задачи в комбинаторной подстановке, чем мое решение исходной задачи.


                1. i_shutov Автор
                  07.08.2019 13:23

                  Речь шла про задачу "Произведение 5 последовательных натуральных чисел равно 2520. Назовите меньшее число"? И решается она. О каком космосе идет речь.


                  1. Andy_U
                    07.08.2019 15:44

                    Нет. Речь идет о понятном для школьника (по Вашим словам — см. первый Ваш вариант решения задачи) решении задачи: составить из 7 чисел (2, 2, 2, 3, 3, 5, 7) 5 последовательных. Я не вижу тут другого решения, кроме подбора/перебора. Это не математика и не информатика, тем более не олимпиадые варианты.

                    P.S. На олимпиадах (и на академ.боях — не знаю, выжил ли этот вид «спорта») всегда за общее решение давали больше баллов, чем за конкретное.


                1. i_shutov Автор
                  07.08.2019 14:53

                  Много хитрых словесных конструкций, а по сути все тривиально. Что тут алгоритмизировать? Тоска. И решение Вы свое не привели.


                  Прошу не забывать контекст — это задача для ребенка 9 лет.
                  Ну воспользуйтесь возможностью, чтобы показать, как эту задачу можно решать, какие подходы существуют. Можно взять корень 5-ой степени, округлить до целого вниз и использовать его в качестве первого приближения для подсчета произведения. Но дети еще не проходили степени (может Вам это не известно)!


                  Зато можно поговорить про актуальную по школьной программе тему "разложение на множители".


                  1. Andy_U
                    07.08.2019 15:49

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

                    Так зачем Вы такое решение приводите в качестве варианта решения?

                    «разложение на множители».

                    Эта тема из программы 7-го класса


                    1. i_shutov Автор
                      07.08.2019 19:36

                      Ссылка на несуществующую страницу сайта репетиторов? Забавно.


                      За длинными комментариями я совершенно потерял суть. Какую мысль вы хотели донести в контексте исходной публикации?


                      Про пропущенный шаг с множителями я с Вами согласился, пропустил.
                      Несогласие со способами решения? Так это зависит от того, какие цели ставятся и на каком уровне решаем.
                      Вы вполне можете быть несогласным, но без демонстрации своих целей и своего способа решения это несогласие остается полным абстрактом.


                      1. Andy_U
                        07.08.2019 21:42

                        Ссылка на несуществующую страницу сайта репетиторов? Забавно.

                        Утром была. А сейчас весь раздел «библиотека» отвалился. Впрочем, и фиг с ней. Вроде бы, понятия НОД и НОК изучают раньше, начиная с 5-го класса. Но все равно сильно позже третьего.

                        За длинными комментариями я совершенно потерял суть. Какую мысль вы хотели донести в контексте исходной публикации?

                        Что разложение числа 2520 на простые множители ни само по себе не является решением, и что даже не стоит его рассматривать в качестве первого шага комбинаторного решения. Что для школьников, что для всех.

                        Даже если сформулировать задачу в таком виде, самое простое решение — сначала перемножить эти простые числа и использовать или просто цикл, или метод деления интервала пополам (но рекурсивные решения опять в каком классе изучаются?).


                        1. i_shutov Автор
                          07.08.2019 22:38

                          я с этим утверждением не соглашусь.


                          1. разложение на простые множители — один из базовых способов проанализировать предложенное в задачах число.
                          2. мы не решаем задачу в общем виде, речь идет про конкретное число.
                          3. получить из 7-ми чисел 5 последовательных — куда уж проще. очевидно, что там 8 получить нельзя, и есть 2 простых числа 5 и 7.
                          4. да даже если корни пятой степени извлекать рано, всегда можно приближенно прикинуть. 2520 ~ 2500 = 25 * 100 = 50^2 ~ 7^4. Площадь квадрата объясняют уже. Вот и берем 7 в качестве максимального числа (потому что 4-ую степень взяли при оценке) и проверяем 7*6*5*4*3.

                          О какой комбинаторике и рекурсиях идет речь для числа 2520?


                          1. Andy_U
                            07.08.2019 23:13

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


                            1. i_shutov Автор
                              08.08.2019 06:59

                              Давайте внимательно посмотрим на исходную постановку.


                              1. Есть конкретная задача "дать ответ", а не задача "вообще".
                              2. Была озвучена позиция применения компьютера: "Речь идет не про чат-ботов в три строки, а о применении компьютера в рамках изначальной цели — проведение вычислений, ..."
                              3. Алгоритмизация решения в виде программы нигде не озвучивалась, это Вы сами ее себе придумали и сами спорите.
                              4. Алгоритмический подход охватывает не только кодирование, но и построение хода рассуждений.

                              Что я наблюдаю. Почти все спорящие тут введение в 2 абзаца и исходные постановки задач прочли невнимательно, додумали несуществующие формулировки и тезисы, "поймали" и бросились "сажать в лужу". Похвально и достойно.


        1. i_shutov Автор
          07.08.2019 09:28

          Кстати, из статьи я так и не понял, что именно вы предлагаете: игнорировать школьные занятия по математике, и вместо этого решать с ребенком олимпиадные задачи (сначала на листике, а потом и на компе)?

          Вступление


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

          Что именно здесь непонятно или двусмысленно?


          1. Kron7
            07.08.2019 09:43

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

            У меня вопрос остается такой (я его уже задавал, поэтому цитирую):
            Я отнес публикацию к программированию, поэтому и показал только эту часть. Насчет перехода все тривиально.
            Вовсе нет. Вот вы объяснили решение задачи на листике. Далее как вы собираетесь третьекласснику объяснить решение этой задачи на пк с использованием какого-либо языка программирования, когда он вообще ничего не знает о программировании?


            1. i_shutov Автор
              07.08.2019 09:51
              -1

              Я не преподаватель.


              А родитель, наверное, должен сам искать подход к своему ребенку. Из общих рекомендаций — почитать книги из серии "для начинающих" по предметной области.


              Сейчас есть книги по Лего программированию, по scratch, по питону, ориентированные в т.ч. для детей. Есть такая серия книг


              Раньше писали подробные книги по другим языкам


              В каком именно виде Вы ожидаете ответ на вопрос "Как обучать?" Этому в педвузах обучают и далеко не один семестр.


              Или вопрос опять не в этом? Я реально не понимаю, что Вы хотите узнать.


              1. Kron7
                07.08.2019 10:01

                Я не преподаватель.
                А вот тут удивили. У меня уже сложилось впечатление, что вы преподаватель, который занимается подготовкой учеников к олимпиадам всех уровней. Хм…

                В каком именно виде Вы ожидаете ответ на вопрос «Как обучать?» Этому в педвузах обучают.
                Или вопрос не в этом? Я реально не понимаю, что Вы хотите узнать.
                Я спрашиваю о том, как вы собираетесь третьекласснику объяснить решение задачи на пк с использованием какого-либо языка программирования, когда он вообще ничего не знает о программировании?

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


                1. i_shutov Автор
                  07.08.2019 10:24
                  -1

                  А вот тут удивили. У меня уже сложилось впечатление,

                  Я выступаю с родительской стороны. Поэтому все вопросы ко мне про методологию и про образование детей комментирующих вызывают удивление.


                  как вы собираетесь третьекласснику объяснить

                  Вы когда-нибудь преподавали?
                  Вообще в этом процессе фигурируют два участника и результат зависит от стараний обеих сторон.


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


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


                  1. Kron7
                    07.08.2019 10:35

                    Вы когда-нибудь преподавали?
                    Да.

                    Вообще в этом процессе фигурируют два участника и результат зависит от стараний обеих сторон.

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

                    Но я ожидаю, что конкретного ответа не последует. Поэтому мы и приходим к ситуации, когда человек говорит «А», но не в состоянии сказать «Б». Это, кстати, одна из причин, почему ваша статья не очень хорошо воспринялась.


                    1. i_shutov Автор
                      07.08.2019 10:39
                      -1

                      Но я ожидаю, что конкретного ответа не последует.

                      Правильно ожидаете. У меня есть ответы, но для нормального человеческого общения, а не через экран.


                      Вообще, я выступаю с родительской стороны и не являюсь сертифицированным специалистом, поэтому с удовольствием переадресую его Вам, как преподавателю.


                      1. Kron7
                        07.08.2019 10:52

                        У меня есть ответы, но для нормального человеческого общения, а не через экран.
                        Что мешает набрать ответ на клавиатуре?) Целую статью же написали.

                        Вообще, я выступаю с родительской стороны и не являюсь сертифицированным специалистом, поэтому с удовольствием переадресую его Вам, как преподавателю.
                        Хотите перебросить на меня свою «обязанность» по доработке вашей статьи?) Нет уж, увольте. Ваши идеи — вам их и допиливать)


                        1. i_shutov Автор
                          07.08.2019 20:37

                          Вот ровно по этой причине экран и отметается. Эскалация тона в общении по почте или в чате возникает гораздо быстрее и гораздо сильнее, теряется невербальный канал. Каждый общается не с собеседником а со своим представлением о собеседнике.


                          Какой ответ на клавиатуре Вас устроил бы? В одно предложение вместить опыт многих поколений и многих книг? Что то наподобие "Expecto Patronum"?


                          1. Kron7
                            07.08.2019 21:13

                            Каждый общается не с собеседником а со своим представлением о собеседнике.
                            Так и есть. Но никто не будет организовывать конференцию по скайпу для обсуждения статьи ;)

                            Какой ответ на клавиатуре Вас устроил бы? В одно предложение вместить опыт многих поколений и многих книг?
                            Повторюсь:
                            Никто не просит от вас универсального способа научить любого ребенка. Просто своими словами сформулируйте как бы вы это объяснили, допустим, своему ребенку.
                            Но вы отказываетесь. И, полагаю, по причине того, что банально не можете этого сделать. Откуда можно сделать вывод о несостоятельности вашего предложения переводить для ребенка [логическое решение задачи на бумажке] в [алгоритмическое решение на пк с использованием яп].


  1. uchitel
    06.08.2019 07:32
    +3

    Система образования — это результат бесчисленных попыток бесчисленного числа бездарных чиновников, хоть как-то оправдать свое бесполезное и бессмысленное существование. На их требования можно вообще никакого внимания не обращать. Вся их власть заключается в том, что родители полностью исключены из процесса или находятся в заблуждении. Но стоит родителям объяснить, что они теряют, если они начинают требовать, писать жалобы, то ситуация меняется в корне. Бесчисленное количество людей, которые недавно вас заставляли заниматься какой-то чушью, сделают все что бы вы делали именно то, что действительно нужно.

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

    Задания которые вы рассматриваете очень похожи на элементы последнего задания в ЕГЭ профильной математики и вот там, то без программирования обойтись очень трудно (да и вообще со второй частью экзамена). Я использую Python (numpy, matplotlib) но уверен, что и R в этом плане тоже замечательно подойдет. А с детишками мы просто играемся в Scratch, никаких тетрадей, никаких книжек, весь урок что-то кодим, что-то пробуем. Этих котят гораздо важнее научить пользоваться когтями и зубами, чем сразу заставлять охотиться или что еще хуже дрессировать. Многие думают, что Scratch — это только программирование, но это далеко не так.

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


  1. Andy_U
    06.08.2019 10:26

    Для задачи:

    Произведение 5 последовательных натуральных чисел равно 2520. Назовите меньшее число.

    первый вариант решения:

    numbers::primeFactors(2520)

    очевидно, неверный.


    1. i_shutov Автор
      06.08.2019 10:34

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


      1. Andy_U
        06.08.2019 10:55

        Вы действительно считаете, что задача собрать из чисел 2, 2, 2, 3, 3, 5, 7 пять последовательных натуральных чисел проще исходной?


        1. i_shutov Автор
          06.08.2019 14:32

          Да\нет\не знаю. Выбранное подчеркнуть.


          Если серьезно, то для Вас совершенно неважно, что думаю я. Важно что Вы сами думаете. Можете привести решение, которое Вам нравится, это будет интересно.


  1. Asmody
    07.08.2019 14:12
    +1

    зададим коэффициенты на основании упрощенного полинома и найдем все корни

    Как там в песне поётся: «Нынче в школе третий класс вроде института...»


    1. i_shutov Автор
      07.08.2019 15:01

      ну не совсем :).


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


      их то можно со взрослыми обсуждать.


      1. Asmody
        07.08.2019 15:55

        У меня в детстве была чудесная книга «Программирование игр и головоломок» Арсака. Вот оттуда задачки будут отлично на R ложиться, я думаю. Но это точно не для 3 класса. Может быть, для 8 в «школе с уклоном». В R слишком много «магии под капотом».