Математика для программиста.

  • Автор теми Автор теми Вовремя
  • Дата створення Дата створення
я не обязан ничего реализовывать - тем более задача сформулирована бабским а не техническим языком.

Бабским?:іржач: Ну приведи пример своего "технического" языка. :іржач:

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

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

Ну так что? Сам сможешь реализовать или будешь быдлокодить?
 
Ну приведи пример своего "технического" языка.
у меня всегда технический язык. Кроме случаев колгда *****ов называю *****ами.

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

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

Кстати для сложного многокритериального поиска вменяемые люди люди используют решения типа SOLR или Sphinks. Математика для их использования тоже не нужна но это на случай дальнейшего высасывания задач из пальца.
 
у меня всегда технический язык. Кроме случаев колгда *****ов называю *****ами.

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

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

Кстати для сложного многокритериального поиска вменяемые люди люди используют решения типа SOLR или Sphinks. Математика для их использования тоже не нужна но это на случай дальнейшего высасывания задач из пальца.

Угу, где код сортировки?
 
Останнє редагування:
употребляй нормальные технические термины а не собственный жаргон
Гуглите logical reads, physical reads, Ваше величество Школоло великовозрастное. Пользуйтесь словарём. Столько знали, и всё забыли, да? Ах да, это ж супер-DBA, прилагаемый в нагрузку к команде одарённых, Вашего тим-лида за такие реализации сношал, перемежая мат "собственным жаргоном" из таких терминов. Или плакал навзрыд, когда заказчик показывал ему результат трудов гениального фрилансера, ВНЕЗАПНО ставший сыпать чудесами при количестве одновременно работающих пользователей больше трёх.

дает при любой иерархии. выполнение иерархического запроса в любом виде - это нагрузка на сервер.
А таблицу сканировать или по диапазону индекса ползать (если повезёт), строки резать -- это разгрузка, значит. И обновлять всё поддерево, двигая узел в дереве, -- это так, семечки. И при этом никаких ограничений целостности по иерархии нет. И никаких надежд, что третий уровень в поле означает третий уровень в реальности. Зато этот мусор внесён в БД, хе-хе. Давайте, жгите ещё.

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

что такое корень

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

А те, кому математика не нужна, будут спрашивать много не нужных в данном случае подробностей, упирая на то, что задача недостаточно точно сформулирована. А шо такое лист? А шо такое иерархия? А деревьев может быть много в лесу, да-да, это очень важно в такой задаче! Хотя всего лишь стоило учить математику. :)

Ура. Per troglodytae ad astra!

PS: А ещё математика учит не использовать без нужды кванторы. Например, квантор всеобщности ∀.
и это поддерживают все без исключеня сервера? не задумывался почему в инете столько статей о хранении иерархических данных в реляционных БД? и все они используют дополнительные поля.

PPS: И да, слова "программа", "программирование", "программист" в русском языке пишутся с двумя м. Знаток технического языка самопровозглашённый. :D
 
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Код самому привести не судьба? Я тоже так могу. Вот код поиска всех вхождений слова Fred.

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


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

это любой запрос делает - уж как оптимизатор распорядится

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

Вот мы и пришли к пользе математики для программиста.

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

PPS: И да, слова "программа", "программирование", "программист" в русском языке пишутся с двумя м. Знаток технического языка самопровозглашённый.
пошло приебывание к словам - значит сказать уже нечего.

так что там насчет твоей же задачи?
Засчитываем слив и признаем себя ****оболом али еще повыебываемся.

Код самому привести не судьба?
код чего? слова order by?

Вот код поиска всех вхождений слова Fred.
круто! У меня аж встал.
Но вот высшей математики не вижу. Надо заканчивать институт чтобы научится писать регулярки? програмисты моложе 20 возразят.

кстати ты даже не уточнил о чем речь была о поиске в БД или регулярках. Это и есть неумение ТЕХНИЧЕСКИ сформулировать задачу. Был у меня такой манагер - напишет ТЗ идешь и тыкаешь носом в каждое слово - что имеется ввиду, что озачает сия фраза в данном контексте и т.д.
 
Останнє редагування:
это любой запрос делает
Да что ж такое, человек прогуливал кванторы всеобщности! :D Есть и без LIO запросы, угомонитесь.

никуда мы не пришли - это элементарные понятия
Которых Вы не знаете. Но пыжитесь и пытаетесь этот факт заговорить.

это разве что если реальность меняется не уведомляя об это приложение и сотвеьсьвеннго сервер
Да-да. С базой работает только одно приложение с одним пользователем. Приложение разрабатывает только один программист. Который всё держит в голове. Даже ограничения целостности. Всё под контролем. И это сколько там лет практики, двадцать?

Так и не использую. Это у Вас пестрит: все, любой, всюду, каждый.

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


так что там насчет твоей же задачи?
Дык, я всё также жду решения от познавшего дзен знатока технических терминов. Как Klez ждёт уже сколько страниц. А знаток всё пытается мастер-класс демагогии показать. И там он никому ничем не обязан, и здесь его мнение исключительно оценочное, и вообще все вокруг ******, а он -- Валерия Ильинична.



Надоело.

caballero, Вы безоговорочно правы, я -- школота неотёсанная, а Вы -- муж многоопытный.
Математика программисту не нужна (это программирование иногда нужно математикам). А программисты -- они и без математики могут, да.
Мы не можем решить своих собственных задач, а Вы их все по двести раз уже решили за свою жизнь и только что. А какие не решили -- те надуманные, никому не нужны в реальном мире.
Вы, как допишете "Большой словарь технических терминов, а не как на базаре", сразу ссылку на него в магазине киньте. Уверен, многие здешние неучи купят! Я уж точно куплю, буду просвещаться, мне полезно.
И не нужна вторая м, главное, чтобы програмист был хороший и повидавший всё вообще. Умел писать програмы и функцеи вида хатэтэпэ://чей-то.сайт, делился ими с калегами на форуме безвозмездно и предлагал высокоэфиктивные решения.

Здоровья Вам, а я пойду каяться, потому что слил, и мне заще... зазчи... в общем, да!
 
Останнє редагування:
Да что ж такое, человек прогуливал кванторы всеобщности!
бла-бла-бла

Которых Вы не знаете. Но пыжитесь и пытаетесь этот факт заговорить.
покажи пост где я это не знаю

Да-да. С базой работает только одно приложение с одним пользователем. Приложение разрабатывает только один программист.

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


Дык, я всё также жду решения от познавшего дзен знатока технических терминов.

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

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

Математика программисту не нужна (это программирование иногда нужно математикам). А программисты -- они и без математики могут, да.

математика уровня выше арифметики не нужнв в 99.9% случаях, а остальное таки да - хоть раз не спиздел - прогрес налицо

Здоровья Вам, а я пойду каяться, потому что слил, и мне заще... зазчи... в общем, да!
ну хоть один честно признался
Но не расстраивайся - ты не последий - полку клоунов еще прибудет:попкорн:
 
Останнє редагування:
мое (точнее которое я взял для использования) решение проще и универсальнее. Дополнительное поле ни малейшей проблемой не представляет.

ты до сих пор не смог довести до рабочего состояния своё "решение" :D
Чтобы оно заработало тебе нужно написать update скрипт, который проставляет значения для твоего дополнительного поля. И вызывать этот скрипт как на этапе инсталляции, так и на любой операции меняющей структуру дерева. И скрипт этот ты так и не сумел написать.

Считаем что ты провалил это простое задание.
Вот решение, о котором я говорил:
Код:
WITH TLIST(major, minor) AS
(
	SELECT t1.id AS major, t1.id AS minor
		FROM mytree t1
		WHERE value_txt='abc'
	UNION ALL
	SELECT te.major, t2.id
		FROM TLIST te
		INNER JOIN mytree t2
			ON t2.parent_id = te.minor
)
SELECT t.* 
	FROM TLIST e
	LEFT JOIN mytree t
		ON t.id=e.minor

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

Задачу с оптимизацией логического выражения ты тоже провалил, ответ: if (!a & b & d)



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

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

решения чего? - сформулируй задачу по челоевечески. Ты уже третий кто пишет бессмысленный набор фраз требуя от меня решение

интересно, что задача понятна всем, кроме тебя :D



WITH штука конечно удобная - сам пользовался в DB2 лет 6 назад
но при беде можно заменить подзапросом поэтому к иерархии как таковой это никак не относится

никак не относится только у тех кто считает что это не решаемая задача, решает большинство задач с помощью ORDER BY и доказывает что математика нафиг не нужна :)
 
Останнє редагування:
пруф от facebook'a о нужности математики

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
код чего? слова order by?


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

кстати ты даже не уточнил о чем речь была о поиске в БД или регулярках. Это и есть неумение ТЕХНИЧЕСКИ сформулировать задачу. Был у меня такой манагер - напишет ТЗ идешь и тыкаешь носом в каждое слово - что имеется ввиду, что озачает сия фраза в данном контексте и т.д.

Код запроса. А вообще, если ты настолько туп, что не можешь понять элементарного, общепринятого, человеческого языка то нечего прикрываться выдуманным техническим. Короче во фрилансе тебе места нет.
 
пруф от facebook'a о нужности математики

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

<sarcasm_on>Да какие шансы, что среднестатистическому программисту понадобится такое решать...</sarcasm_off>
:D:D

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

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


Кстати, можно пофлудить на тему "Нужен ли программисту знание русского/английского/etc." языка...
 
Кстати, можно пофлудить на тему "Нужен ли программисту знание русского/английского/etc." языка...

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

Считаем что ты провалил это простое задание.

сначала сходи
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


Вот решение, о котором я говорил:
вот результат выполнения твоего "решения"

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH TLIST(major, minor)

напиши рабочий код тогда поговорим.

чтобы ты перестал ****еть вот мое решение на моей таблице категорий в инетмагазине

Код:
SELECT t1.* FROM shop_productgroups t1 JOIN shop_productgroups t2 
ON position(concat('0',t2.group_id) in t1.treeorder) > 0  
AND   t2.groupname='Процессоры' AND   t1.groupname <>'Процессоры'

возвращает дочерние категории типа AMD Intel и т.д.

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


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

Задачу с оптимизацией логического выражения ты тоже провалил, ответ: if (!a & b & d)
не провалил потому что не пыытался решать как бессмысленную с практической точки зреня задачу


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

оператор WITH отностится к иерархическим запросам не больше чем JOIN или WHERE просто его удобно там использовать. К средствам ПРЕДНАЗНАЧЕННЫМ для иерархических запросов относится CONNECT BY в Oracle и hierarchyid в MSSQL.
Учи матчасть.

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


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

Короче во фрилансе тебе места нет.
А мои иностранные заказчики говорят что есть. Правда там умеют ТЗ писать. В нашем фрилансе где в програмирование идут колхозники чтобы не впахивать на огороде, может и нет.

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

Если в письме ошибка на ошибке, то можно сразу прощаться.

в целом да но есть моменты. Я например когда пишу быстро изза хренового зрения промахиваюсь по клаве, на форуме это значения не имеет поэтому так и оставляю.
 
Останнє редагування:
в целом да но есть моменты. Я например когда пишу быстро изза хренового зрения промахиваюсь по клаве, на форуме это значения не имеет поэтому так и оставляю.
Ладно... поверю на первый раз ;)
 
вот результат выполнения твоего "решения"
напиши рабочий код тогда поговорим.

мой код рабочий - написан он для MSSQL. Если тебе больше нравится MySQL, можешь писать свое решение для него, тебя никто не ограничивал. ;)

чтобы ты перестал ****еть вот мое решение на моей таблице категорий в инетмагазине

Код:
SELECT t1.* FROM shop_productgroups t1 JOIN shop_productgroups t2 
ON position(concat('0',t2.group_id) in t1.treeorder) > 0  
AND   t2.groupname='Процессоры' AND   t1.groupname <>'Процессоры'

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

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

Если набить значения руками, то иллюзию для ****амотного человека у тебя может и получится создать, но реально - это гавно, а не решение.
 
Останнє редагування:
это полностью негодное решение, оно как минимум не содержит кода для инициализации значений лишнего поля и кода для обновления этого поля после каждого апдейта parent_id.

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



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

не знаю зачем набивать руками если есть админка для редактирования (в данном случае категорий товаров) но твое решение вообще ни *** не будет работать кроме твоего сервера.

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

если бы ты не вносил модификацию в схему таблицы, то достаточно бы было только SELECT'а, как у меня.

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


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


делов то взять строку из родителя и дописать айдишник

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

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

По твоим "решениям" сразу видно, что ни с чем сложнее примитивной морды для таблицы, ты не имел :)
И с этой точки зрения твое отношение к математике можно понять, задачи ты решаешь школьные и на уровне школьника, потому и математика тебе не нужна.
 
если бы ты не вносил модификацию в схему таблицы, то достаточно бы было только SELECT'а, как у меня.
недостаточно
#1064 - You have an error in your SQL syntax

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

Ты бы хотябы довел до рабочего состояния свой код!
сначала свой доведи
#1064 - You have an error in your SQL syntax
 
Назад
Зверху Знизу