Задать вопрос
@545454valera

В стандартной библиотеке go есть ли инструменты для работы с многомерными срезами/массивами?

Всем привет. Го мой первый язык, и я открыл задачку для школьников на диагональ матрицы, и не смог её решить. Неужели нет никаких инструментов, чтоб не возиться с кучей вложенных циклов? Ведь без инструментов, тут нужен iq минимум 150, чтоб такие логические конструкции вместить в голове. Уже хочу бросить всё, раз даже такое не смог решить. Открыл решения, там питон в основном, и это в одну строчку всё у них. А тут городил циклы, так ничего и не вышло. И даже рабочее решение от gpt я понять не смог. На этот вопрос мне он тоже ответить не смог.
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 2
В стандартной библиотеке — нет. Но есть сторонние библиотеки вроде https://pkg.go.dev/gonum.org/v1/gonum/mat или https://github.com/james-bowman/sparse

Если вы решаете задачи на алгоритмы, то вам лучше как раз без таких библиотек, которые в одну строчку делают задачу (потому что в библиотеке кто-то до вас уже написал агоритмы).

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

Ведь без инструментов, тут нужен iq минимум 150


Это вам так кажется, потому что первый язык и вы только начинаете разбираться. На самом деле такие задачи без проблем решаются на чистом го.
Ответ написан
Комментировать
axifive
@axifive
Software Engineer
Так для работы с диагоналями матриц достаточно одного цикла, зачем там вложенные?
Ну и попробуйте поработать с одномерными массивами, прежде чем переходить к многомерным.
for i := 0; i < len(matrix); i++ {
   fmt.Println(matrix[i][i]) //главная
}
for i := 0; i < len(matrix); i++ {
   fmt.Println(matrix[i][len(matrix)-1-i]) //побочная
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы