зачем какая-то математика, помимо арифметики для бытовых нужд?
См.вики:
Матема́тика (др.-греч. μᾰθημᾰτικά[1] < μάθημα «изучение; наука») — наука об отношениях между объектами, о которых ничего не известно, кроме описывающих их некоторых свойств, — именно тех, которые в качестве аксиом положены в основание той или иной математической теории[2]. Исторически сложилась на основе операций подсчёта, измерения и описания формы объектов[3]. Математические объекты создаются путём идеализации свойств реальных или других математических объектов и записи этих свойств на формальном языке. Математика не относится к естественным наукам, но широко используется в них как для точной формулировки их содержания, так и для получения новых результатов. Математика — фундаментальная наука, предоставляющая (общие) языковые средства другим наукам; тем самым она выявляет их структурную взаимосвязь и способствует нахождению самых общих законов природы[4].
Как раз фундаментальная наука обычно дает очень четкие ответы на вопрос «зачем это нужно». Нпр., зачем нужна линейная алгебра? или зачем нужна структурная теория орг. химии? зачем нужны числа пи, е и постоянная Планка? (см. википедию, кто не знает :)
Спасибо за интересный перевод. Единственное «но»: стоит хаб «Научно-популярное», значит адресовано и далеким от темы читателям, у которых наверняка возникнет детский вопрос «зачем это нужно» ;)
(Тот самый случай, когда видно, что популярные статьи бывает сложнее писать, чем научные).
К тем примерно ста более-менее разным сортировкам, о которых мне известно
Внушительная цифра. Не хотите опубликовать в виде статьи список своей коллекции? Хотя бы всего несколько строк на каждую сортировку:
— Номер (от 1 до 100)
— Название
— Краткая характеристика (простая, быстрая, похожа на предыдущую и т.д.)
— Ссылка на источник.
Думаю, что такой справочный список будет очень полезен. (Посмотрел, что у Вас много публикаций по сортировкам, но меньше 100 :), но и такому количеству Ваших публикаций индекс для поиска по ним будет полезен).
И делитесь в комментариях строчками и историями, которые вам больше всего запомнились!
Спасибо. Очень интересные истории. Но, конечно, начинающего «кодить» школьника относительно не сложно удивить. Но вот когда далеко не начинающие и совсем уже не школьники удивляются как школьники — это ИМХО суперслучай.
Никогда не думал, что для такого древнейшего и общеизвестного алгоритма — решета Эратосфена может найтись что-то принципиально новое, неожиданное. Но вот совсем недавно обнаружился короткий алгоритм и не где-нибудь в малоизвестном источнике, а общеизвестной рувики! До сих пор нахожусь под впечатлением.
С днём программиста, коллеги! Не уставайте удивляться — удивительное рядом. Нужно только внимательно присмотреться.
сильно все зависит от конкретных структур в коде и от языка
Можно ли утверждать, что если язык сложен для анализа, то:
— он хуже, чем более простой, т.к. затрудняет поиск уязвимости;
— он хуже, чем более простой, т.к. чем сложнее генератор кода — тем больше возможно в нем багов;
— он лучше, чем более простой, т.к. сложнее взломать исполняемый код?
Слышал мнение, что трансляция на эзотерические ЯП или для эмулятора машины Тьюринга усложняет анализ и повышает защиту. Ваше мнение?
Не всех из перечисленных можно считать любителями. Я в новых постах отдельную мысль про это напишу.
Очень интересно будет узнать Ваше мнение. Забегая вперед возражу, что и Вы не совсем любитель (не с нуля начали):
Кроме того в старших классах были уроки информатики. Turbo Pascal. Нас учили писать настоящий код. Разумеется, в тетрадях. Но у меня был компьютер (уже какой-то Пентиум) и я мог практиковаться.
Так я познакомился с самыми элементарными вещами. Конструкциями if-then-else и циклами. Вершиной моего мастерства стала программа «Рулетка».
Поэтому мне не понятно затруднение:
Первое препятствие. Дошел до понятия классов и объектов. Понятие совершенно непонятно.
По паскалю и по школьной математике Вам знакомо понятие типа данных, нпр., отличия целых чисел от вещественных:
— чтобы сравнить целые на равенство пишем:
if x=y then
— а если x и y вещественные, то нужно написать:
if abs(x-y)<epsilon then
Наверняка этому в школе учили, но у Вас это знание ушло в пассив. Чтобы вспомнить про простые и сложные типы достаточно проглядеть статью в вики потратив 20 минут. Переход от понятия типа к понятиям ООП очень прост — подробнее я написал. Там и про то, что ООП — удобная технология, но не надо преувеличивать ее пользу.
Создать классы для игрока, казино и рулетки? Потом придумывать объекты в них? И что они будут делать? Слишком притянуто. Кажется чем-то неестественным и только запутывает программу.
Я предпочитаю ОО Паскаль в Дельфи-7. И начал бы делать Вашу задачу в GUI. В этом случае по команде «новый проект» среда Дельфи генерирует код с основным окном — объектом экземпляром класса TForm. На эту форму-окно я бы стал класть компоненты для управления игрой (ход, выход и т.д.), писать обработчики событий (нпр., нажатие на кнопку), а в них уже логику игры. В простой постановке классы казино, игрок, рулетка были бы не нужны. Более сложный пример, где нужны особые нестандартные классы.
Успехов!
Полное покрытие кода, что приводит к поиску большего количества уязвимостей.
Извините и поправте, пожалуйста, если я ошибаюсь, но слышал мнения, что сборка линукса среднего объема, нпр., для офисной работы это такой большой объем исходного кода, что полное его покрытие ни одна фирма в разумный срок сделать не способна (при наличае исх. кода).
Аналогично по железу. Если не ошибаюсь — Интел еще много лет назад заявил, что не может обеспечить полного покрытия при тестировании CPU. Сейчас ситуация не улучшилась.
И о Вашем подходе. Есть ли оценки Вашего метода типа: N байт кода — T время анализа, N2 байт кода — T2 время анализа? Не будет ли здесь крутой экспоненты?
Принято считать, что программирование — удел профессионалов. Никто не занимается программированием в качестве хобби. Такого понятия, как “любительское программирование” (запомните это слово) его вообще не существует.
На запрос «любительское программирование” (в кавычках) гугл выдал 351 результат. Это сравнительно немного, т.о. это слово встречается нечасто. Но если под этим словом понимать непрофессиональное программирование, то это очень распространенное занятие.
Прежде всего я бы отметил профи в других областях, которые регулярно пишут програмки для своей работы (только для себя). Нпр., знаю одного химика органика синтетика — доктор хим. наук, работает в одном из ведущих НИИ РАН. Программировать учился самостоятельно. Изучал только то, что было ему нужно — нпр., рулетку он не напишет :)
Есть любители в других областях, нпр., радиолюбители, которые пишут код для своего хобби.
Но есть люди постоянно связанные с программированием по основной работе. Нпр., „чистый“ математик может входить в бригаду программистов, где разрабатывать очень изощренные алгоритмы и при этом не знать ни одного ЯП.
И как быть со школьниками? Сейчас уже в начальной школе учат программированию. Школьник может им увлекаться, но до профи ему еще очень далеко.
А еще много мододелов-любителей. Пишет, нпр., моды для любимой игры на очень ограниченном скриптовом языке. Но ведь и это „кодинг“ с отладкой.
К моменту первого выхода R1FL в эфир лампы, способные работать в метровом диапазоне волн, уже были разработаны М.А. Бонч-Бруевичем и производились в НРЛ.
Они были разработаны им с нуля или было влияние иностранных разработок, технологий? Когда началось дублирование иностранных радиодеталей и схем?
Точную форму вопроса я не помню, но судя по вашим словам, вы поняли о чем речь.
Речь о том, что Вы, товарищ, исказили мое мнение. Но извинений мне не дождаться. В следующий раз напишите, что я где-то сказал (не помните где), что Земля плоская :)))
(Приводите в таком случае точную цитату со сылкой, а так получается сотрясение воздуха).
На самом деле вопрос «зачем нужна школьная алгебра?» задал товарищ third112 уже не помню где.
Прежде всего не видя ничего негативного в слове «товарищ» из чистого любопытства хочу поинтересоваться: Вы продолжаете жить в СССР? — там тотально называли так каждого человека за особыми исключениями, нпр., «постояльцев» исправительных заведений называли «гражданин». Но скоро 30 лет, как значение этого слова стало более узким, нпр., «товарищ по оружию» для военных или «товарищ по полит.партии». Где мы с Вами товарищи?
И я не помню, чтобы я задавал такой вопрос в такой форме: «зачем нужна школьная алгебра?». Если Вы про мой опрос: то там
Роль математики для информатики в школе высокая
К настоящему времени 60.9% из 1083 товарищей пользователей ответили Да.
Еще по проблемам образования у меня публикация. М.б. там?
Здесь выше уже прозвучали слова типа "профанация". ИМХО сводить роль школьной алгебры к развитию смекалки это явная профанация цели школьного обучения. ИМХО:
обеспечение возможности осознанной проф.ориентации – важнейшая задача общеобразовательной школы
С этим согласились 76.6% из упомянутого опроса. Осознанный выбор проф.ориентации в пользу (или не в пользу) дисциплин, основанных на чистой и, нередко, прикладной математике — это не только развитие смекалки. Для смекалки существует много других методов, нпр., игры и головоломки: шахматные задачи, карточные пасьянсы, кроссворды и т.д.
Причем контекст вопроса был именно в том, что школьная алгебра это тупая отработка механического навыка, а не «настоящая» математика.
Нет. Контекст был в том, что из алгебры делают тупую отработку борьбы с многоэтажными монстрами методом их упрощения. Т.е. учителя избирают простейший для себя путь. А когда бывший школьник избирает проф.ориентацию с математикой — там он сталкивается с другой алгеброй.
Спасибо за ответы. Но ведь каждое сообщество хочет расширяться, хочет чтобы его ЯП стал еще более популярным. А каждый дублирующий термин может создаь проблему для понимания новичком в этом сообществе. В статье при первом появлении такого термина можно написать «корутины (сопрограммы)».
С наилучшими пожеланиями сообществу Kotlin. (Я совершенно искренне).
Интересно, что Издательский дом предпочитает изобретать свою терминологию «корутины» вместо устоявшийся "Сопрограммы" :) Боюсь покупать книги такого издательства с необычными терминами — куплю и ничего не пойму.
Четкое объяснение. Что в нем непонятного?
(Тот самый случай, когда видно, что популярные статьи бывает сложнее писать, чем научные).
— Номер (от 1 до 100)
— Название
— Краткая характеристика (простая, быстрая, похожа на предыдущую и т.д.)
— Ссылка на источник.
Думаю, что такой справочный список будет очень полезен. (Посмотрел, что у Вас много публикаций по сортировкам, но меньше 100 :), но и такому количеству Ваших публикаций индекс для поиска по ним будет полезен).
И спасибо автору!
Спасибо. Очень интересные истории. Но, конечно, начинающего «кодить» школьника относительно не сложно удивить. Но вот когда далеко не начинающие и совсем уже не школьники удивляются как школьники — это ИМХО суперслучай.
Никогда не думал, что для такого древнейшего и общеизвестного алгоритма — решета Эратосфена может найтись что-то принципиально новое, неожиданное. Но вот совсем недавно обнаружился короткий алгоритм и не где-нибудь в малоизвестном источнике, а общеизвестной рувики! До сих пор нахожусь под впечатлением.
С днём программиста, коллеги! Не уставайте удивляться — удивительное рядом. Нужно только внимательно присмотреться.
занимало байт и значение
представлялось единичным младшим и старшим битами, остальные нули. С помощью popcount легко и быстро посчитать мощность такого множества.
Можно ли утверждать, что если язык сложен для анализа, то:
— он хуже, чем более простой, т.к. затрудняет поиск уязвимости;
— он хуже, чем более простой, т.к. чем сложнее генератор кода — тем больше возможно в нем багов;
— он лучше, чем более простой, т.к. сложнее взломать исполняемый код?
Слышал мнение, что трансляция на эзотерические ЯП или для эмулятора машины Тьюринга усложняет анализ и повышает защиту. Ваше мнение?
Поэтому мне не понятно затруднение:
По паскалю и по школьной математике Вам знакомо понятие типа данных, нпр., отличия целых чисел от вещественных:
— чтобы сравнить целые на равенство пишем:
— а если x и y вещественные, то нужно написать:
Наверняка этому в школе учили, но у Вас это знание ушло в пассив. Чтобы вспомнить про простые и сложные типы достаточно проглядеть статью в вики потратив 20 минут. Переход от понятия типа к понятиям ООП очень прост — подробнее я написал. Там и про то, что ООП — удобная технология, но не надо преувеличивать ее пользу.
Я предпочитаю ОО Паскаль в Дельфи-7. И начал бы делать Вашу задачу в GUI. В этом случае по команде «новый проект» среда Дельфи генерирует код с основным окном — объектом экземпляром класса TForm. На эту форму-окно я бы стал класть компоненты для управления игрой (ход, выход и т.д.), писать обработчики событий (нпр., нажатие на кнопку), а в них уже логику игры. В простой постановке классы казино, игрок, рулетка были бы не нужны. Более сложный пример, где нужны особые нестандартные классы.
Успехов!
Извините и поправте, пожалуйста, если я ошибаюсь, но слышал мнения, что сборка линукса среднего объема, нпр., для офисной работы это такой большой объем исходного кода, что полное его покрытие ни одна фирма в разумный срок сделать не способна (при наличае исх. кода).
Аналогично по железу. Если не ошибаюсь — Интел еще много лет назад заявил, что не может обеспечить полного покрытия при тестировании CPU. Сейчас ситуация не улучшилась.
И о Вашем подходе. Есть ли оценки Вашего метода типа: N байт кода — T время анализа, N2 байт кода — T2 время анализа? Не будет ли здесь крутой экспоненты?
На запрос «любительское программирование” (в кавычках) гугл выдал 351 результат. Это сравнительно немного, т.о. это слово встречается нечасто. Но если под этим словом понимать непрофессиональное программирование, то это очень распространенное занятие.
Прежде всего я бы отметил профи в других областях, которые регулярно пишут програмки для своей работы (только для себя). Нпр., знаю одного химика органика синтетика — доктор хим. наук, работает в одном из ведущих НИИ РАН. Программировать учился самостоятельно. Изучал только то, что было ему нужно — нпр., рулетку он не напишет :)
Есть любители в других областях, нпр., радиолюбители, которые пишут код для своего хобби.
Но есть люди постоянно связанные с программированием по основной работе. Нпр., „чистый“ математик может входить в бригаду программистов, где разрабатывать очень изощренные алгоритмы и при этом не знать ни одного ЯП.
И как быть со школьниками? Сейчас уже в начальной школе учат программированию. Школьник может им увлекаться, но до профи ему еще очень далеко.
А еще много мододелов-любителей. Пишет, нпр., моды для любимой игры на очень ограниченном скриптовом языке. Но ведь и это „кодинг“ с отладкой.
(Приводите в таком случае точную цитату со сылкой, а так получается сотрясение воздуха).
Прежде всего не видя ничего негативного в слове «товарищ» из чистого любопытства хочу поинтересоваться: Вы продолжаете жить в СССР? — там тотально называли так каждого человека за особыми исключениями, нпр., «постояльцев» исправительных заведений называли «гражданин». Но скоро 30 лет, как значение этого слова стало более узким, нпр., «товарищ по оружию» для военных или «товарищ по полит.партии». Где мы с Вами товарищи?
И я не помню, чтобы я задавал такой вопрос в такой форме: «зачем нужна школьная алгебра?». Если Вы про мой опрос: то там
К настоящему времени 60.9% из 1083
товарищейпользователей ответили Да.Еще по проблемам образования у меня публикация. М.б. там?
Здесь выше уже прозвучали слова типа "профанация". ИМХО сводить роль школьной алгебры к развитию смекалки это явная профанация цели школьного обучения. ИМХО: С этим согласились 76.6% из упомянутого опроса. Осознанный выбор проф.ориентации в пользу (или не в пользу) дисциплин, основанных на чистой и, нередко, прикладной математике — это не только развитие смекалки. Для смекалки существует много других методов, нпр., игры и головоломки: шахматные задачи, карточные пасьянсы, кроссворды и т.д.
Нет. Контекст был в том, что из алгебры делают тупую отработку борьбы с многоэтажными монстрами методом их упрощения. Т.е. учителя избирают простейший для себя путь. А когда бывший школьник избирает проф.ориентацию с математикой — там он сталкивается с другой алгеброй.
С наилучшими пожеланиями сообществу Kotlin. (Я совершенно искренне).