Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
nameunknown
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 2
1

Как можно подробнее напишите, что из математики нужно программисту

03.04.2015, 00:06. Просмотров 1482. Ответов 43
Метки нет (Все метки)

Приветствую всех, друзья подскажите пожалуйста, вот говорят по разному, для изучения языка програмирования нужно знать математику, другие говорят что не обязательно, думаю проще всего и математику повторить, кто подскажет что именно из математики мне понадобится, вот приду я к репетитору и чтобы твердо знать что мне от него нужно, перечислите пожалуйста то что понадобится или все подряд учить?
Спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2015, 00:06
Ответы с готовыми решениями:

Что же нужно знать программисту с математики
Доброго времени суток! Прошу прощения, если такая тема уже была, не видел и в гугле найти ответ на...

Что нужно программисту для успеха: высокое IQ, знания математики, лингвистики? Что-то ещё?
Современная система образования в любой точке мира не ставит основной целью "обучить спеца". Спецы,...

Какие главы математики необходимы как воздух будущему программисту?
Добрый день, люди! Подскажите, пожалуйста, какие главы / темы математики необходимы для...

В каких случаях программисту нужны знания математики и физики?
В каких случаях программисту нужны знания математики(высшей, матан, дискр. математика,...

Что нужно знать программисту юниору?
Недавно начал изучать С#(самостоятельно), по книгам и обучающим роликам. После того как более-менее...

43
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 00:29 2
Математика, вещь нужная даже так, в повседневной жизни. А для программиста тем более. Если ты не знаешь хотя бы основ математики то ты не программист, а кодер.
Цитата Сообщение от nameunknown Посмотреть сообщение
что именно из математики мне понадобится, вот приду я к репетитору и чтобы твердо знать что мне от него нужно, перечислите пожалуйста то что понадобится или все подряд учить?
Все подряд учить нет смысла, это слишком долго. Начни с алгебры и дискретной математики(алгорифмы, системы линейных уравнений, множества, поля и кольца чисел -это наиболее часто встречаемая математика в программировании).
Но на самом деле большее значение для программирования имеет не математика и даже не знание языка программирования, а логика- умение правельно и локанично составить алгоритм работы программы.
1
S_el
2231 / 1698 / 354
Регистрация: 15.12.2013
Сообщений: 6,778
03.04.2015, 00:31 3
Цитата Сообщение от nameunknown Посмотреть сообщение
для изучения языка програмирования нужно знать математику, другие говорят что не обязательно
Для изучения ЯП знать математике не обязательно,для эффективного программирования - желательно.

Цитата Сообщение от nameunknown Посмотреть сообщение
вот приду я к репетитору и чтобы твердо знать что мне от него нужно, перечислите пожалуйста то что понадобится или все подряд учить?
Начните с основ.А пока можете ознакомится с этими темами:

Пригодилось ли Вам как программисту математическое образование?
Применяли ли Вы математику в программировании?

Добавлено через 43 секунды
Цитата Сообщение от Super__Enot Посмотреть сообщение
Начни с алгебры и дискретной математики(алгорифмы, системы линейных уравнений, множества, поля и кольца чисел -это наиболее часто встречаемая математика в программировании).
Расскажете почему сделали такие выводы?
0
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 00:40 4
Цитата Сообщение от S_el Посмотреть сообщение
Расскажете почему сделали такие выводы?
Когда начинаешь писать более менее крупные программы при вычислении часто требуется провести операции над большим количество переменных, для этого ты объединяешь их в матрици (массивы) тут то и пригодится знание СЛУ. Или на пример множества,поля и кольца очень полезны при разборе с кодировками. Работа с текстом вполне может пригодится мат статистика и т.д. Но вообще я уже говорил что знание всего этого не обязательно, но очень полезно. Ведь ты можешь ускорить работу программы двумя способами, первый это допилить код, а второй пересмотреть математику работы.
0
S_el
2231 / 1698 / 354
Регистрация: 15.12.2013
Сообщений: 6,778
03.04.2015, 00:46 5
Цитата Сообщение от Super__Enot Посмотреть сообщение
Когда начинаешь писать более менее крупные программы при вычислении часто требуется провести операции над большим количество переменных, для этого ты объединяешь их в матрици (массивы) тут то и пригодится знание СЛУ. Или на пример множества,поля и кольца очень полезны при разборе с кодировками. Работа с текстом вполне может пригодится мат статистика и т.д.
Это все абстрактно.Я хотел услышать мнение,основанное на опыте.
Для работы с текстом в первую очередь пригодятся регулярные выражения,а уже потом математическая статистика,т.к. далеко не все программируют в сфере анализа данных.
0
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 00:54 6
Цитата Сообщение от S_el Посмотреть сообщение
Для работы с текстом в первую очередь пригодятся регулярные выражения,а уже потом математическая статистика
а на каких принципах, по твоему строятся регулярные выражения?
А что касаемо
Цитата Сообщение от S_el Посмотреть сообщение
Это все абстрактно.Я хотел услышать мнение,основанное на опыте.
те разделы которые я перечислил это наиболее часто встречаемые проблемы у новичков, которые только учатся на второкурсных задачках по программированию. Можно посмотреть форум каждый пяты вопрос здесь связан с проблемами реализации математики, но не из за незнания языка, а из за незнания этих основ.=)
0
S_el
2231 / 1698 / 354
Регистрация: 15.12.2013
Сообщений: 6,778
03.04.2015, 01:01 7
Цитата Сообщение от Super__Enot Посмотреть сообщение
а на каких принципах, по твоему строятся регулярные выражения?
Я пытаюсь донести мысль,что для того,чтобы уметь водить автомобиль,вовсе не обязательно знать что у него внутри.

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

Так все-таки на первоначальный вопрос ответите?Или ваш ответ основан на частоте встречаемости вопросов у начинающих программистов? =)
2
Байт
Эксперт C
20348 / 12900 / 2702
Регистрация: 24.12.2010
Сообщений: 26,964
03.04.2015, 01:03 8
Цитата Сообщение от nameunknown Посмотреть сообщение
приду я к репетитору и чтобы твердо знать что мне от него нужно,
Хороший репетитор сам тебе скажет, что тебе нужно. А плохой... Он тебе нужен?
1
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 01:12 9
Цитата Сообщение от S_el Посмотреть сообщение
Я пытаюсь донести мысль,что для того,чтобы уметь водить автомобиль,вовсе не обязательно знать что у него внутри.
Вы видно упустили мысль об это когда читали это
Цитата Сообщение от Super__Enot Посмотреть сообщение
Математика, вещь нужная даже так, в повседневной жизни. А для программиста тем более. Если ты не знаешь хотя бы основ математики то ты не программист, а кодер.
кодер тоже может писать программы но только по готовому алгоритму и не вдаваясь в подробности(не залезая внутрь).


И да мне часто приходилось решать в программировании задачи из этих областей когда я получал образование=))
0
S_el
03.04.2015, 01:23
  #10

Не по теме:

Цитата Сообщение от Super__Enot Посмотреть сообщение
Вы видно упустили мысль об это когда читали это
Нет,не упустил.С вашей позицией в целом я согласен,мне была не ясна причина выбора этих математических направлений для программиста.Но после ваших ответов на уточняющие вопросы я переформулировал ваш ответ для себя так:
это те основы,на которых учатся(учились) большинство,владеющих математикой,программистов.И это вполне естественно,не с нейросеток и кватернионов начинать в самом деле :)
Из вашего первого поста это не так очевидно,вот я и решил прояснить вопрос,дабы не вводить читателей темы в заблуждение.
Надеюсь теперь,мы друг друга поняли.

0
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 01:27 11
да вполне, было очень приятно пообщаться
0
Байт
Эксперт C
20348 / 12900 / 2702
Регистрация: 24.12.2010
Сообщений: 26,964
03.04.2015, 01:32 12
Простите, что перебиваю ваш диалог...
Цитата Сообщение от Super__Enot Посмотреть сообщение
каждый пятый вопрос здесь связан с проблемами реализации математики,
Эта статистика основана на бедной фантазии преподавателей и накладке нескольких незнаний.
Вот, ты - преподаватель. И тебе деньги плотют, чтоб ты ребятишек научил основам языка. Как тебе показать им все фантастические возможности? Надо после Хеллоуворда показать реальные возможности. Какие? Посчитать таблицу функции? Найти факториал? А оно им надо? Вот если бы сразу стрелялку скостромить, да, тут бы они запищали! Но до стрелялки этой надо еще так много узнать! А как?
ИМХО, математика тут особо ни при чем. Нужна, скорее всего, специальная направленность мозгов, стремление создавать то, что до тебя еще не существовало. И именно программирование тут становится "царским путем".
Чтобы научиться делать деревянные статуэтки, нужны и специальные инструменты, и материалы, и серьезное обучение. И руки, правильным концом приставленные к инструменту. А программирование? Инструмент - в каждом доме. Материал - дисковые гигабайты. Твори - не хочу! Остается - обучение, руки (или мозги), способности и желание.
А математика... Она от нас никуда не убежит (как и мы от нее)
2
hoggy
Эксперт С++
7096 / 3143 / 648
Регистрация: 15.11.2014
Сообщений: 7,221
Завершенные тесты: 1
03.04.2015, 01:49 13
Цитата Сообщение от Super__Enot Посмотреть сообщение
Если ты не знаешь хотя бы основ математики то ты не программист, а кодер.
деццкий пафос.

Цитата Сообщение от S_el Посмотреть сообщение
эффективного программирования
что вы подразумеваете под "эффективным программированием" ?
0
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 01:54 14
Цитата Сообщение от Байт Посмотреть сообщение
Нужна, скорее всего, специальная направленность мозгов, стремление создавать то, что до тебя еще не существовало.
согласен полностью но и об этом я тоже говорил
Цитата Сообщение от Super__Enot Посмотреть сообщение
Но на самом деле большее значение для программирования имеет не математика и даже не знание языка программирования, а логика- умение правельно и локанично составить алгоритм работы программы.
Однако

Цитата Сообщение от Байт Посмотреть сообщение
Инструмент - в каждом доме. Материал - дисковые гигабайты. Твори - не хочу!
-нехотят

Добавлено через 3 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
деццкий пафос.
возможно, но вот скажи мне как ты реализуешь например функцию хеширования sha-1 без знания математики?
0
Байт
Эксперт C
20348 / 12900 / 2702
Регистрация: 24.12.2010
Сообщений: 26,964
03.04.2015, 02:05 15
Цитата Сообщение от Super__Enot Посмотреть сообщение
как ты реализуешь например функцию хеширования sha-1 без знания математики?
А чего ее реализовывать? Умные дядьки постарались. Которые математику знают. Но чтобы понять, на хрена она мне нужна, да и как ей пользоваться, надо несколько пудов соли съесть на этом поприще.

Не по теме:

Любопытно получается. Вот дал ТС вопросик. Вполне себе дурацкий. Сам - в кусты. А мы тут - соловьями! Но именно это и интересно.:)

0
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 02:17 16
Цитата Сообщение от Байт Посмотреть сообщение
А чего ее реализовывать? Умные дядьки постарались.
умные дядьки писали ее на все случаи жизни по этому в ней много излишков, лишних проверок отчетов об ошибках и т.д. по этому скорость работы готовых функций, забитых в dll оставляет желать лучшего.
Ну и в конце концов эти умные дядьки умрут а кто потом после них умные вещи будет придумывать, кто если не мы?

Не по теме:

да парнишка инициировал замес одним вопрсом :D

0
hoggy
Эксперт С++
7096 / 3143 / 648
Регистрация: 15.11.2014
Сообщений: 7,221
Завершенные тесты: 1
03.04.2015, 02:27 17
Цитата Сообщение от Super__Enot Посмотреть сообщение
возможно, но вот скажи мне как ты реализуешь например функцию хеширования sha-1 без знания математики?
у меня был случай в практике.
нужно было исправить баг в одном алгоритме.
чужой код.

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

автору кода нужно отдать должное:
в исходнике он оставил один единственный комментарий - название алгоритма.

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

прочитав название, я впервые узнал о его существовании.

у меня ушло 5 минут, что бы загуглить готовую реализацию на языке с++.
и ещё 10 минут, что бы выпилить старый сбойный код,
полностью заменив его новой версией.

http://g.zeos.in/?q=%D1%85%D0%B5%D1%...B5%20sha-1&m=1
1
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 02:33 18
Цитата Сообщение от hoggy Посмотреть сообщение
у меня был случай в практике.
нужно было исправить баг в одном алгоритме.
чужой код.
ну чужой код вообще вещь специфичная его всегда читать сложно.
вот у меня был случай когда я разбирался с исходниками MS Offise word 2007. так вот там код писали индусы причем командой. пока разобрался с динамической проверкой слов, чуть мозг себе не сломал и ни какие знания математики мне не помогли.
0
hoggy
Эксперт С++
7096 / 3143 / 648
Регистрация: 15.11.2014
Сообщений: 7,221
Завершенные тесты: 1
03.04.2015, 02:41 19
Цитата Сообщение от Super__Enot Посмотреть сообщение
ну чужой код вообще вещь специфичная его всегда читать сложно.
не всегда.

Цитата Сообщение от Super__Enot Посмотреть сообщение
вот у меня был случай когда я разбирался с исходниками MS Offise word 2007. так вот там код писали индусы причем командой. пока разобрался с динамической проверкой слов, чуть мозг себе не сломал и ни какие знания математики мне не помогли.
какие у вас интересные фантазии.
0
Super__Enot
33 / 43 / 9
Регистрация: 14.03.2015
Сообщений: 134
03.04.2015, 02:50 20
Цитата Сообщение от hoggy Посмотреть сообщение
какие у вас интересные фантазии.
вот вам небольшой изврат от туда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
char cd64[]="|$$$}rstuvwxyz{$$$$$$$>?@ABCDEFGHIJKLMNOPQRSTUVW$$$$$$XYZ[\\]^_`abcdefghijklmnopq";
 
    unsigned char in[4], out[3], v;
    int i, j=0, len1, l=0;
    int len=0;
    len=strlen(InNum);
    while( j<len)
    {
        for( len1 = 0, i = 0; i < 4 && j<len; i++ ) 
        {
            v = 0;
            while( j<len && v == 0 ) 
            {
                v = (unsigned char) InNum[j];
                j++;
                v = (unsigned char) ((v < 43 || v > 122) ? 0 : cd64[ v - 43 ]);
                if( v ) 
                {
                    v = (unsigned char) ((v == '$') ? 0 : v - 61);
                }
            }
            if( j<len ) 
            {
                len1++;
                if( v ) 
                {
                    in[ i ] = (unsigned char) (v - 1);
                }
            }
            else 
            {
                in[i] = 0;
            }
        }
        if( len1 ) 
        { 
            out[ 0 ] = (unsigned char ) (in[0] << 2 | in[1] >> 4);
            out[ 1 ] = (unsigned char ) (in[1] << 4 | in[2] >> 2);
            out[ 2 ] = (unsigned char ) (((in[2] << 6) & 0xc0) | in[3]);
            //decodeblock( in, out );
            for( i = 0; i < len1 - 1; i++ ) 
            {
                OutNum[l] = out[i];
                l++;
            }
         }
 
    }
#define rk (ctx->keySched)
  int ROUNDS = ctx->ROUNDS;
  int r;
  
  union
  {
    unsigned  tempu32[4];  /* Force correct alignment. */
    unsigned char temp[4][4];
  } u;
 
  *((unsigned*)u.temp[0]) = *((unsigned*)(a   )) ^ *((unsigned*)rk[0][0]);
  *((unsigned*)u.temp[1]) = *((unsigned*)(a+ 4)) ^ *((unsigned*)rk[0][1]);
  *((unsigned*)u.temp[2]) = *((unsigned*)(a+ 8)) ^ *((unsigned*)rk[0][2]);
  *((unsigned*)u.temp[3]) = *((unsigned*)(a+12)) ^ *((unsigned*)rk[0][3]);
  *((unsigned*)(b    ))   = (*((unsigned*)T1[u.temp[0][0]])^ *((unsigned*)T2[u.temp[1][1]])^ *((unsigned*)T3[u.temp[2][2]])^ *((unsigned*)T4[u.temp[3][3]]));
  *((unsigned*)(b + 4))   = (*((unsigned*)T1[u.temp[1][0]])
                        ^ *((unsigned*)T2[u.temp[2][1]])
                        ^ *((unsigned*)T3[u.temp[3][2]]) 
                        ^ *((unsigned*)T4[u.temp[0][3]]));
  *((unsigned*)(b + 8))   = (*((unsigned*)T1[u.temp[2][0]])
                        ^ *((unsigned*)T2[u.temp[3][1]])
                        ^ *((unsigned*)T3[u.temp[0][2]]) 
                        ^ *((unsigned*)T4[u.temp[1][3]]));
  *((unsigned*)(b +12))   = (*((unsigned*)T1[u.temp[3][0]])
                        ^ *((unsigned*)T2[u.temp[0][1]])
                        ^ *((unsigned*)T3[u.temp[1][2]]) 
                        ^ *((unsigned*)T4[u.temp[2][3]]));
 
  for (r = 1; r < ROUNDS-1; r++)
    {
      *((unsigned*)u.temp[0]) = *((unsigned*)(b   )) ^ *((unsigned*)rk[r][0]);
      *((unsigned*)u.temp[1]) = *((unsigned*)(b+ 4)) ^ *((unsigned*)rk[r][1]);
      *((unsigned*)u.temp[2]) = *((unsigned*)(b+ 8)) ^ *((unsigned*)rk[r][2]);
      *((unsigned*)u.temp[3]) = *((unsigned*)(b+12)) ^ *((unsigned*)rk[r][3]);
 
      *((unsigned*)(b    ))   = (*((unsigned*)T1[u.temp[0][0]])
                            ^ *((unsigned*)T2[u.temp[1][1]])
                            ^ *((unsigned*)T3[u.temp[2][2]]) 
                            ^ *((unsigned*)T4[u.temp[3][3]]));
      *((unsigned*)(b + 4))   = (*((unsigned*)T1[u.temp[1][0]])
                            ^ *((unsigned*)T2[u.temp[2][1]])
                            ^ *((unsigned*)T3[u.temp[3][2]]) 
                            ^ *((unsigned*)T4[u.temp[0][3]]));
      *((unsigned*)(b + 8))   = (*((unsigned*)T1[u.temp[2][0]])
                            ^ *((unsigned*)T2[u.temp[3][1]])
                            ^ *((unsigned*)T3[u.temp[0][2]]) 
                            ^ *((unsigned*)T4[u.temp[1][3]]));
      *((unsigned*)(b +12))   = (*((unsigned*)T1[u.temp[3][0]])
                            ^ *((unsigned*)T2[u.temp[0][1]])
                            ^ *((unsigned*)T3[u.temp[1][2]]) 
                            ^ *((unsigned*)T4[u.temp[2][3]]));
    }
 
  /* Last round is special. */   
  *((unsigned*)u.temp[0]) = *((unsigned*)(b   )) ^ *((unsigned*)rk[ROUNDS-1][0]);
  *((unsigned*)u.temp[1]) = *((unsigned*)(b+ 4)) ^ *((unsigned*)rk[ROUNDS-1][1]);
  *((unsigned*)u.temp[2]) = *((unsigned*)(b+ 8)) ^ *((unsigned*)rk[ROUNDS-1][2]);
  *((unsigned*)u.temp[3]) = *((unsigned*)(b+12)) ^ *((unsigned*)rk[ROUNDS-1][3]);
  b[ 0] = T1[u.temp[0][0]][1];
  b[ 1] = T1[u.temp[1][1]][1];
  b[ 2] = T1[u.temp[2][2]][1];
  b[ 3] = T1[u.temp[3][3]][1];
  b[ 4] = T1[u.temp[1][0]][1];
  b[ 5] = T1[u.temp[2][1]][1];
  b[ 6] = T1[u.temp[3][2]][1];
  b[ 7] = T1[u.temp[0][3]][1];
  b[ 8] = T1[u.temp[2][0]][1];
  b[ 9] = T1[u.temp[3][1]][1];
  b[10] = T1[u.temp[0][2]][1];
  b[11] = T1[u.temp[1][3]][1];
  b[12] = T1[u.temp[3][0]][1];
  b[13] = T1[u.temp[0][1]][1];
  b[14] = T1[u.temp[1][2]][1];
  b[15] = T1[u.temp[2][3]][1];
  *((unsigned*)(b   )) ^= *((unsigned*)rk[ROUNDS][0]);
  *((unsigned*)(b+ 4)) ^= *((unsigned*)rk[ROUNDS][1]);
  *((unsigned*)(b+ 8)) ^= *((unsigned*)rk[ROUNDS][2]);
  *((unsigned*)(b+12)) ^= *((unsigned*)rk[ROUNDS][3]);
#undef rk
Добавлено через 1 минуту
и это так лайтовая версия уже мной переписанная

Добавлено через 2 минуты
и вот там то я в первые увидел имитацию классов в голом "С" они организовывали их через многослойные обьединения.
0
03.04.2015, 02:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2015, 02:50

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

Что нужно знать программисту php ?
Собственно хотел ыб его изучить и устроиться на работу именно по этому ЯП. Но ведь нужно не только...

Что нужно изучать web-программисту?
Вот собственно вопрос, что необходимо знать, что бы быть более-менее сносным web-программистом? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru