IT в России и мире в реалиях мирового кризиса

1,293,143 7,820
 

Сообщение не найдено!

Сообщение #7059044 не найдено в ветке "IT в России и мире в реалиях мирового кризиса"!
Фильтр
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: Siberian от 07.02.2024 20:15:20
Цитатаroot@ad55d1526ccb:~# time python -c "import math; print(math.factorial(1000))"  
........0

real    0m0.090s
user    0m0.073s
sys     0m0.017s
root@ad55d1526ccb:~#


Другое дело, что тут
а) в реализации math.factorial под капотом сишный код работает
b) в целях обучения ребёнку действительно не плохо было бы уметь самому написать реализацию алгоритма вычисления факториала, сортировок и прочего

Просто для всех, кто не вникал и не вникает.

100! = 93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000.

Это примерно 93 умножить на 10 в 156 степени!
В какой компьютер вы такое число поместите, ЕСЛИ НЕ ЗАНИМАЕТЕСЬ ПРИКЛАДНОЙ МАТЕМАТИКОЙ? А это нифига не программирование как таковое.
Тем более для школьников.
.
Касательно приведённой распечатки.
Это наверное код ошибки и диагностика?
Отредактировано: ivan2 - 07 фев 2024 20:30:54
Нам нужен мир!
Желательно весь.
  • +0.05 / 2
  • АУ
Senya
 
russia
55 лет
Слушатель
Карма: +324.56
Регистрация: 20.11.2008
Сообщений: 26,976
Читатели: 52

Глобальный Модератор
Цитата: gb от 07.02.2024 20:33:35Польза от такой задачи - околонулевая.

Аж на ностальгию пробило. Улыбающийся
Вычисление 100! я сделал на первой лабе по программированию через целочисленный массив на фортране, после чего препод сказал, чтобы до конца семестра он меня больше не видел. Так что польза в виде несколько свободного времени всё же была. Крутой
"Иван Грозный помещает на рабочий стол полученный от хана ярлык."(с) Не моё.
  • +0.14 / 8
  • АУ
Siberian
 
russia
Слушатель
Карма: +0.75
Регистрация: 07.04.2021
Сообщений: 162
Читатели: 0
Цитата: ivan2 от 07.02.2024 20:27:57Просто для всех, кто не вникал и не вникает.

100! = 93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000.

Это примерно 93 умножить на 10 в 156 степени!
В какой компьютер вы такое число поместите, ЕСЛИ НЕ ЗАНИМАЕТЕСЬ ПРИКЛАДНОЙ МАТЕМАТИКОЙ? А это нифига не программирование как таковое.
Тем более для школьников.
.
Касательно приведённой распечатки.
Это наверное код ошибки и диагностика?

Нет, это факториал 1000 и время его вычисления - просто, чтобы показать, что вы несколько отстали от жизни. Не во всех языках тип "int" обязательно должен соответствовать машинному "слову". Например, в учебном языке Рапира, которому обучали в 80-ые годы, и для целых и для чисел с плавающией точкой был один тип "ЧИСЛО" и использовалась 128-и битовая арифметрика. Очень круто для того времени.

Хотите именно 100? Пожалуйста:
Цитатаroot@ad55d1526ccb:~# python -c "import math; print(math.factorial(100)); print(type(math.factorial(100)))"
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000


root@ad55d1526ccb:~#


Хотите, чтобы таки случилась ошибка? Тоже можно:
Цитатаroot@ad55d1526ccb:~# python -c "import math; print(math.factorial(10000))"                                   
Traceback (most recent call last):
 File "", line 1, in  
ValueError: Exceeds the limit (4300) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit
root@ad55d1526ccb:~#


Штука в том, что в 3-ем питоне int вообще не ограничен:
Цитатаroot@ad55d1526ccb:~# time python -c "import math; import sys; sys.set_int_max_str_digits(100000000); print(math.factorial(10000))"
2846259680917...тут еще дофига цифер...0000

real    0m0,090s
user    0m0,085s
sys     0m0,004s
root@ad55d1526ccb:~#
Отредактировано: Siberian - 07 фев 2024 20:57:17
  • +0.00 / 0
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 20:33:35В небольшой ноутбук помешается. 
93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000
Польза от такой задачи - околонулевая.

Уважаемый gb!
Я Вам ненапрасно задал вопрос. Какой тип выходных данных?
Вы хоть примерно представляете постановку задачи программисту?
Входные данные, типы, выходные данные, типы...
Вот школьнику объясните тип танных числа 93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000
целого без знака.
Между прочим это 66 байт.
Нам нужен мир!
Желательно весь.
  • +0.08 / 4
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: Siberian от 07.02.2024 20:45:48Нет, это факториал 1000 и время его вычисления - просто, чтобы показать, что вы несколько отстали от жизни. Не во всех языках тип "int" обязательно должен соответствовать машинному "слову". Например, в учебном языке Рапира, которому обучали в 80-ые годы, и для целых и для чисел с плавающией точкой был один тип "ЧИСЛО" и использовалась 128-и битовая арифметрика. Очень круто для того времени.

Хотите именно 100? Пожалуйста:
Цитатаroot@ad55d1526ccb:~# python -c "import math; print(math.factorial(100)); print(type(math.factorial(100)))"
...

...

Ну вот и пришли к Коболу. Под столом
Нам нужен мир!
Желательно весь.
  • +0.02 / 1
  • АУ
AndreyK-AV
 
russia
Уфа
63 года
Слушатель
Карма: +102.83
Регистрация: 10.11.2008
Сообщений: 46,080
Читатели: 13
Цитата: ivan2 от 07.02.2024 19:59:33И чему равен факториал 100?
Хотя бы тип данных выходного числа укажите.

Вот именно, умение самому составить алгоритм решения задачи, хоть факториала, хоть нахождения минимума/максимума и т.д. и т.п.
Для реального обучения школьников, языки позволяющие об этом не думать просто вредны, это как западные идеи убрать сопромат из вузов, дескать компьютер посчитает. 
А средний школьник, пусть выучив основы и получив базу, а затем аттестат, думает кем быть кодировщиком(программистом), постановщиком или инженером. А освоить новые языки это близко не проблема.
Да будь я и негром преклонных годов, и то, без унынья и лени, я русский бы выучил только за то, что им разговаривал Ленин.
-------------------------------------------------------------
Наше дело правое. Враг будет разбит. Победа будет за нами.(с)
  • +0.16 / 10
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 20:59:21int 
Занимает в памяти 96 байт, требуется действительно 66 байт.

Приведите языки (диалекты), в которых декларирован тип "96 байт".
И давайте их в школу двинем?
Может всё же в школу Ардуинку? А?
Нам нужен мир!
Желательно весь.
  • +0.06 / 3
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 21:22:28import math, sys
res = math.factorial(100)
print(type(res))
print(sys.getsizeof(res))
      
Это все python 3.11 ))    
     
Не знаю, как там в школе, а в ВШЭ на гуманитарных специальностях (философия, культурология)  уже надо знать python на уровне pandas и matplotlib и сдать  курсовки по анализу данных.

Да я же не спорю.
Их изначально ставят в стойло перечня применяемых объектов, свойств и методов.
А математики/программисты ВШЭ из Росси сами пишут объекты?
Нам нужен мир!
Желательно весь.
  • +0.02 / 1
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 21:35:28А какие проблемы написать объекты?  Это просто рутина.

Рутина унаследовать и чуть подкрутить.
Поменять не получится.
Например вычислите ново_факториал new_n!=1⋅2⋅3⋅...⋅ (n−2)⋅ (n−1+3)⋅n. Вызвать готовое, не получится, нету! Написать, не сумеете.
На это и расчёт. Из стойла ни на шаг...
Отредактировано: ivan2 - 07 фев 2024 22:06:09
Нам нужен мир!
Желательно весь.
  • +0.02 / 1
  • АУ
LightElf
 
ussr
Слушатель
Карма: +15.82
Регистрация: 02.09.2010
Сообщений: 2,587
Читатели: 1
Цитата: gb от 07.02.2024 18:18:46А зачем сейчас писать сортировку пузырем?  Время изменилось.  Сейчас надо учиться мыслить векторами, матрицами, тензорами. Это иной стиль мышления.

Сортировка и поиск - это фундамент любой обработки данных. Сортировка пузырьком - самый простой и наивный алгоритм решения задачи (и, кстати, имеющий определённые преимущества в некоторых частных случаях). Для эффективного решения прикладных задач очень полезно иметь общее представление о том, как все устроено "под капотом". Это позволит избежать дорогих архитектурных ошибок.
Суть в том, что несмотря на все модные нанометры, компьютеры принципиально не поменялись со времен фон Неймана. Они все так же выполняют примитивные операции над ячейками памяти и никаких чудес там не появилось. Сложить два целых числа по-прежнему быстрее, чем отличить кошку от собаки по фотографии.
  • +0.06 / 4
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 22:15:34При разработке НС надо написать два класса - формирование данных с аугментацией и преобразованием в нужный формат, и сама НС. Разумеется наследование, разумеется определяются всего пара-тройка методов в каждом, но это нужно для любой НС.  Поэтому рутина.

Когда Вы написали math.factorial(100), вы тащите функцию factorial из библиотеки на Си. В той библиотеки нет new_factorial, понимаете?
Вам надо сначала переписать библиотеку создав новый new_factorial. 
А это уже нифига не Питон.
Отредактировано: ivan2 - 07 фев 2024 22:21:14
Нам нужен мир!
Желательно весь.
  • +0.04 / 2
  • АУ
LightElf
 
ussr
Слушатель
Карма: +15.82
Регистрация: 02.09.2010
Сообщений: 2,587
Читатели: 1
Цитата: gb от 07.02.2024 19:42:10Программа вычисления факториала занимает две строчки:
     
import math
math.factorial(x)

Есть колдунство посильнее: "Алиса, посчитай мне факториал и объясни что это такое". 🤣
А есть ещё сильнее: "Алиса (Сири, Алекс, Гугл)! Сделай мне хорошо"
Отредактировано: LightElf - 07 фев 2024 22:26:53
  • +0.04 / 2
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 22:22:41А мне не нужно вообще в принципе тащить факториал. Я даже представить себе не могу задачу, где нужен факториал.  Это нечто не имеющее отношения к жизни.

Ну вот Вы и признались в том, что Вам в программистской жизни ничего больше, чем Вам дают и не надо.
Это было ясно с самого начала.
ПТУ.
Отредактировано: ivan2 - 07 фев 2024 22:32:17
Нам нужен мир!
Желательно весь.
  • +0.03 / 1
  • АУ
Luddit
 
Слушатель
Карма: +88.14
Регистрация: 27.09.2008
Сообщений: 23,150
Читатели: 2
Цитата: gb от 07.02.2024 22:31:17А факториал - нечто оторванное от жизни.

А хотите удивиться? Факториал нецелого числа тоже естьУлыбающийся
  • +0.00 / 0
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 22:31:17Вы ошиблись.  Я сам беру то, что мне нужно.  Мне интересно сделать семантический поиск по персональной базе знаний - делаю. А факториал - нечто оторванное от жизни.

Семантический поиск?
Чё, серьёзно?
Вот прямо так "семантики, цепочка допущена", "левосторонний нисходящий разбор лексем с возвратом"? На Питоне?
Это просто интересно.
Отредактировано: ivan2 - 07 фев 2024 23:07:59
Нам нужен мир!
Желательно весь.
  • +0.03 / 1
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: gb от 07.02.2024 22:44:26Вы лучше попробуйте придумать практические кейсы, в которых нужен его расчёт.

В задачах определения вероятностей (например в оценки рисков) вполне.
Нам нужен мир!
Желательно весь.
  • +0.08 / 3
  • АУ
Luddit
 
Слушатель
Карма: +88.14
Регистрация: 27.09.2008
Сообщений: 23,150
Читатели: 2
Цитата: ivan2 от 07.02.2024 22:47:58В задачах определения вероятностей (например в оценки рисков) вполне.

В общем да, но там эти факториалы стопками на каждом углу стоят.
То есть возможно, что именно эти задачи лучше решать не в лоб через библиотечные факториалы, а делать отдельные функции хотя бы для случаев когда один факториал делится на другой.
Чтобы не получалось как в той истории "Вылить из чайника воду, задача сводится к предыдущей".
Отредактировано: Luddit - 07 фев 2024 22:52:49
  • +0.10 / 4
  • АУ
Luddit
 
Слушатель
Карма: +88.14
Регистрация: 27.09.2008
Сообщений: 23,150
Читатели: 2
Цитата: gb от 07.02.2024 22:51:53Например?

Комбинаторика. Количество исходов из всех возможных, соответствующих некоторому критерию.
  • +0.09 / 4
  • АУ
ivan2
 
russia
Санкт-Петербург
63 года
Слушатель
Карма: +8.40
Регистрация: 16.11.2008
Сообщений: 9,002
Читатели: 1
Цитата: Luddit от 07.02.2024 22:51:43В общем да, но там эти факториалы стопками на каждом углу стоят.
То есть возможно, что именно эти задачи лучше решать не в лоб через библиотечные факториалы, а делать отдельные функции хотя бы для случаев когда один факториал делится на другой.
Чтобы не получалось как в той истории "Вылить из чайника воду, задача сводится к предыдущей".

Об этом и речь. А в math. этого и нет. На выручку приходит утверждение, что раз нет, значит никому это и не надо.
При том, что рядимся про Питон, который прцедурно неориентированный. Можно. Но через задний проход и это уже нифига не Питон.
Нам нужен мир!
Желательно весь.
  • +0.08 / 4
  • АУ
Luddit
 
Слушатель
Карма: +88.14
Регистрация: 27.09.2008
Сообщений: 23,150
Читатели: 2
Цитата: gb от 07.02.2024 23:04:46Что это на практике, например.

Ну вот строите вы мост и хотите определить запас прочности.
На мосту будет скажем знак ограничения 20 тонн, но ведь найдётся идиот, который нагрузит все 40 и ему пофиг, что через 10 поездок его машина крякнет - ведь сейчас-то едет.
То есть на 40 тонн вы запас заложите.
Но что если таких альтернативно одарённых на мосту встретится два?
В каких комбинациях движения их в потоке мост устоит, а в каких нет?
Какова вероятность, что мост рухнет? Оправдывается ли дополнительная перестраховка и дополнительный бетон в мост таким риском? При каком запасе затраты сравняются с риском, умноженным на убытки катастрофы?
Отредактировано: Luddit - 07 фев 2024 23:18:35
  • +0.12 / 4
  • АУ
Сейчас на ветке: 5, Модераторов: 0, Пользователей: 1, Гостей: 1, Ботов: 3
 
Александр Алексеевич