التعليم الحالي في المدرسة أكثر وأكثر انخفاضا. وفي الجزء المتبقي ، يتم التركيز أكثر فأكثر على التأثير الخارجي. "عمل المشروع" ، والعروض التقديمية ، والآثار نجاح باهر ، وما إلى ذلك بهرج. علاوة على ذلك ، غالبًا ما يكون من غير الواضح من يتم توزيع هذه التمارين - على الطفل أو الوالدين؟ والنتيجة المترتبة على ذلك كله هي الحاجة إلى فصول إضافية في دوائر مختلفة ، داخل المدرسة أو بدلاً من ذلك ، إذا كان هناك هدف لتعليم الطفل تعليماً كاملاً.
في حالة الرياضيات أو الفيزياء ، يمكنك محاولة اصطياد عصفورين بحجر واحد (بئر ، أو الأرنب والأرنب). الجمع بين حل المشاكل من تحويلة. فصول (المناهج الدراسية ليست مناسبة لهذا) مع التعليم الموازي لثقافة العمل مع البيانات والتدريب في النهج الحسابية. نحن لا نتحدث عن برامج الدردشة في ثلاثة خطوط ، ولكن عن استخدام الكمبيوتر كجزء من الهدف الأصلي - إجراء الحسابات ، وإجراء التجارب العددية ، والنمذجة والكشف عن التبعيات الخفية ، التي يمكن بناء فرضيات جديدة على أساسها.
ألاحظ على الفور أنه لن يكون الجميع مهتمًا بالموضوع. إلى من هو غير ذي صلة - تمر . الذي سوف يكون اضافية. الأفكار ، سيكون من المثير للاهتمام التعرف أيضا. بعد ذلك ستكون سلسلة من المشكلات التي تم استعارتها من دورات " Metashkola " ، الرياضيات ، الصف الثالث. بطبيعة الحال ، في البداية يتم حل المشكلة عن طريق التفكير المنطقي ، ثم تتم مناقشة طريقة الحل باستخدام الكمبيوتر.
إضافات مهمة من المناقشة أدناه:
- تتم كتابة المادة من وجهة نظر أحد الوالدين ، وليس المعلم. لا توجد خدمات والعلاقات العامة. هنا مجرد مجموعة من الاعتبارات العملية.
- تم استخدام 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))
مثال الحل ، الطريقة الثالثة 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 , # , = 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 ثور وبقرة واحدة ؛
- 124 - 1 ثور وبقرة واحدة ؛
- 523 - 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)
التوافقية
مهمة
كم من مجموعات مختلفة من الحروف التي لا يوجد فيها حرفان متطابقان يقفان بجانب بعضهما البعض يمكن إعادة تكوينها من خلال إعادة ترتيب الحروف K و A و W و A؟
إلقاء نظرة على الاعتبارات المختلفة ، وتوليد كل التباينات المتميزة لقائمة في 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
مهمة القراصنة
القراصنة: أ ، ب ، ج
قائلا 1
ج: ب له عينان
ب: ج له عينان
C: A له عينان
قائلا 2
a: لدينا جميعا 2 عيون
ب: لدينا جميعا 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
إلخ إلخ
بالنسبة للبعض ، قد تكون هذه مناسبة لقضاء بعض الوقت مع طفلك.
الوظيفة السابقة - "بعض الاعتبارات للحوسبة المتوازية في البحث عن مهام" المؤسسة " . "