Показ дописів із міткою стем-проєкт. Показати всі дописи
Показ дописів із міткою стем-проєкт. Показати всі дописи

пʼятниця, 8 березня 2024 р.

Килимкова комбінаторика - 2.11-А представляє



 Нагадаю, що одночасно учні 5-Г і 11_а отримали майже однакове завдання - створити килимки із прямокутників заданих розмірів, заданих кольорів і заданої кількості. Про результати  маленького проєкту я вже писала . Нагадаю. кому цікаво- за посиланням https://halinadudar-teacher.blogspot.com/2024/02/5.html

І от сьогодні результати пошуків одинадцятикласників. Ентузіасті небагато.- Соломі я Кривицька і Роман Лещук. Вручну виявилось порахувати кількість килимків виявилось надто громіздко. Кількість килимків із заданими умовами , застосовуючи відомі 11-класникам формули комбінаторики, виходять потужно великі числа. Це спробував зробити  Роман Лещук. В кінцевому рахунку він склав програму, за якою можна утворювати килимки із заданими властивостями. Соломія, утворюючи килимки,побачила цікаві геометричні закономірності, пов'язані із розташуванням складових килимків. Отож, дивимося  на отримані килимки. І. зауважу, що тут показано лише кілька з усього різноманіття. Тому є простір для фантазії і творчості. Ну, а хто. бажає може спробувати попрацювати над математичним обгрунтуванням.Можливо. хтось скептично скаже, навіщо це потрібно. Але, повірте. застосування цьому можна знайти . Наприклад, у дизайні, у моделюванні одягу, прикрас, у побуті,... Можна створити набори для розвивальних ігор... 








 Програма Романа Лещука

include <vector>

#include <iostream>

 

using namespace std;

 

bool check(vector<vector<int>>& matrix, int xpos, int ypos, int x, int y, int type)

{

         if (xpos < 0 || xpos >= x || ypos < 0 || ypos >= y) return true;

        

         if (xpos > 0 && matrix[ypos][xpos - 1] == type) return false;

         if (xpos < x - 1 && matrix[ypos][xpos + 1] == type) return false;

         if (ypos > 0 && matrix[ypos - 1][xpos] == type) return false;

         if (ypos < y - 1 && matrix[ypos + 1][xpos] == type) return false;

         return true;

}

 

void run(vector<vector<int>>& matrix, vector<int>& count, int xpos, int ypos, int x, int y, long long& result)

{

         int newxpos = xpos, newypos = ypos;

         if (xpos == x - 1)

         {

                   newxpos = 0;

                   newypos++;

         }

         else

         {

                   newxpos++;

         }

        

         for (int i = 0; i < count.size(); i++)

         {

                   if (count[i] && check(matrix, xpos, ypos, x, y, i))

                   {

                            if (newypos == y)

                            {

                                      result++;

                                      continue;

                            }

                            matrix[ypos][xpos] = i;

                            count[i]--;

                            run(matrix, count, newxpos, newypos, x, y, result);

                            count[i]++;

                            matrix[ypos][xpos] = -1;

                   }

         }

}

 

void calcAll(vector<int> count, int xSize, int ySize)

{

         int countSum = 0;

         for (int c : count) countSum += c;

        

         vector<pair<int, int>> combs{};

         for (int i = 1; i <= sqrt(countSum); i++)

         {

                   double intpart;

                   if (modf((double)countSum / i, &intpart)) continue;

                   combs.push_back({ (int)intpart, i });

         }

        

         long long totalResult = 0;

         for (pair<int, int> comb : combs)

         {

                   cout << comb.first * xSize << 'x' << comb.second * ySize << ":\n";

                   long long currentResult = 0;

                   vector<vector<int>> matrix(comb.second, vector<int>(comb.first, -1));

                   run(matrix, count, 0, 0, comb.first, comb.second, currentResult);

                   totalResult += currentResult;

                   cout << currentResult << "\n\n";

                  

                   if (xSize != ySize)

                   {

                            totalResult += currentResult;

                            cout << comb.first * ySize << 'x' << comb.second * xSize << ":\n" << currentResult << "\n\n";

                   }

                  

                   if (comb.first != comb.second)

                   {

                            totalResult += currentResult;

                            cout << comb.second * xSize << 'x' << comb.first * ySize << ":\n" << currentResult << "\n\n";

                           

                            if (xSize != ySize)

                            {

                                      totalResult += currentResult;

                                      cout << comb.second * ySize << 'x' << comb.first * xSize << ":\n" << currentResult << "\n\n";

                            }

                   }

         }

        

         cout << "Total count: " << totalResult << '\n';

}

 

int main(int argc, char *argv[])

{

         // vector<int> count = { 5, 5, 4, 4, 3, 3 };

         vector<int> count = { 5, 4, 3, 2, 1, 1 };

         int xSize = 5;

         int ySize = 4;

        

         calcAll(count, xSize, ySize);

        

         return 0;

}



пʼятниця, 8 вересня 2023 р.

Хоча б день без математики! Хіба це можливо? Що думають з цього приводу 5-класники?

 

На першому уроці я запропонувала 5-класникам на домашнє завдання  написати есе "Один день без математики. Чи можливо це?"


Ось що думають про це учні 5-Г класу! 
















Чи погоджуєтесь ви з моїми 5-класниками?

А що говорили з цього приводу видатні особистості?

Математика — це велична споруда, створена уявою людини, для пізнання Всесвіту. (Ле Корбюз’є- французький архітектор)





Серед усіх наук, що відкривають людству шлях до пізнання законів природи, наймогутніша, найвеличніша наука - математика. (С. Ковалевська)





…спробуємо на хвилину уявити собі, що ми всі втратили елементарні арифметичні знання. Адже це приведе до справжньої суспільної катастрофи, бо арифметичний розрахунок супроводить нас на кожному кроці. (Б.В. Гнєденко)



 


Нехай той, хто не математик, не читає мене. (Леонардо да Вінчі)





 


“Всі гадають, ніби математика — наука суха, що полягає вона тільки в умінні рахувати. Це безглуздя. Цифри в математиці відіграють наймізернішу, найостаннішу роль. Це — найвища філософська наука, наука найбільших поетів…”( Михайло Остроградський)

 


Сама лише математика, наче яскрава зірка,. сяє переді


мною, на неї всі мої сподівання.” ( Георгій Вороний)






Кого не манить краса, ні мистецтво, хто живе вбогим


духовним життям, той нічого не дасть математиці. Поезія не ріжниться від математики вищим летом уяви, а математик ріжниться від поета лиш тим, що все і всюди розуміє… Але як у мистецтві, так і в математиці лише твори гарні переживають століття і виховують цілі покоління. ” (Мирон Зарицький)

 

 


середа, 15 березня 2023 р.

Про правильні многокутники і не тільки

 

Геометрія -цікава наука. Не лише своїми задачками ( дехто при цьому скептично посміхнеться. або й зовсім скривиться як середа на п'ятницю).Геометрія - цк краса! Навіть шкільна геометрія. От приміром, вивчаємо ми правильні многокутники, а тут сама краса! Не вірите? то подивіться і послухайте. Учора учні 9-В класу захищали свої проєкт з теми "Правильні многокутники". А саме "Многокутники навколо нас "  - Юля Кузик, "Многокутники в архітектурі" - Олеся Свінціцька, "Мандали" - Софія Паляниця, "Бджоли і многокутники" ( і що тут може бути спільного?) - Катя Олійник і Діана Шостак. 

Було цікавенно! Кожний із спікерів мав про що розповісти. мав якусь родзинку! Молодці!


Олеся Свінціцька


Доповідають Катя Олійник і Діана Шостак








 А виявляється. що найкращі архітектори - бджоли! І вони чудово знають тему "Правильні многокутники"!

Про мандали цікаво розповідає Софія Паляниця. Виявилось, що не всі знають. що це таке.








Приклади мандал. Сподіваємось доповнити галерею роботами Софії.






Юля Кузик розповіла про правильні многокутники навколо нас.







Далі буде...