|
Преобразование массива
|
|||
---|---|---|---|
#18+
Получил вот такое тестовое задание: Реализуйте на С# функцию System.Array SingleArrayToMultiDimensionalArray(System.Array src, int[] dimensions). Функция преобразует одномерный массив src в многомерный массив с элементами того же типа и заданным числом измерений dimensions, где dimensions[i] – это размерность по i-му измерению. Старшее измерение индексируется приоритетнее. Пример. Массив int[] Arr = new int[] { 1,2,3,4,5,6 } преобразуется в многомерный массив int[2,3] (не object[2,3]): 1 2 3 4 5 6 Опишите прототип функции, выполняющей обратное преобразование. Было бы интересно получить 2 решения – с использованием рекурсии и без – и сравнить их быстродействие. Результат представить в виде консольного приложения, выводящего на экран многомерный массив. Понятно, что особая пикантность этого задания в том , что на Питоне это одна строчка типа numpy.arange(24).reshape((4,2,3)) ну да ладно, вправьте мозги мне, как на C# то это сделать, не зная заранее 2d,3d,4d... массив на выходе должен получиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 22:54 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111с использованием рекурсии это ещё с какого бодуна? fil1111как на C# то это сделать, не зная заранее 2d,3d,4d... массив на выходе должен получиться Метод Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 23:14 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Изопропил, А по подробней можно? Я все таки, наверное, не до такой степени хорошо знаю C#, как питон... До работающего решения так и не дошёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 23:24 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Дошло. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 23:50 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111, подробнее - в MSDN https://msdn.microsoft.com/ru-ru/library/dfs8044k(v=vs.110).aspx там же Array.SetValue() https://msdn.microsoft.com/en-us/library/758awxk7(v=vs.110).aspx поэлементное копирование от языка уже не зависит ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2016, 00:07 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111, имхо, наверное эти парни хотели услышать классическое ( назовем его так) преобразование динамических массивов в стиле С, без выделения новой памяти, а так это слишком уж просто и тупо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 08:46 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Где-то в степи, Ну так и давали бы задание на C. Уж на чистом C без плюсов справился бы наверное :) А Вы знаете как на C# это сделать без unsafe? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 09:22 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111, дело в том, что если вы решили такую вещь верно, говорит для меня 1 вы знаете что такое куча 2 вы знаете как располагаются массивы тем более значимые 3 вы нативно представляете что такое многомерные массивы и как они могут располагаться в куче. 4 Ссылки и указатели для вас не пустой звук. Если парень все это знает, научить его программировать на шарпе, это элементарно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 09:28 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111Где-то в степи, А Вы знаете как на C# это сделать без unsafe? знаю, но студией и шарпом не пользуюсь еже полтора года. на си это примерно две строчки кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 09:34 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Где-то в степи, Ну вот и я о том же. На Питоне так вообще одна. Да и учить меня уже поздно. Если только сам захочу научиться. И все таки - как на шарпе то? Без unsafe. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 09:38 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111,зачем вам шарп, работайте на питоне где вы все знаете, зы подаю по пятницам.. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 09:50 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Где-то в степи, Если Вы ВСЕ знаете, скорее всего уже умерли. Я то как раз не стесняюсь признаться, что многого не знаю. А вот Вы зачем вылезли непонятно. Товарищ выше сразу предложил правильное решение, которого я не знал. Вот ему большое спасибо. А вот о Вас чего думать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:02 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111что на Питоне это одна строчка типа Зачем так глупо лукавить? Это с использованием NumPy одна строчка. Питон тут вообще не при чём. Много чего можно делать одной строчкой на любом языке, вплоть до запусков кораблей в стратосферу, с нужной библиотекой. Хотя я бы с удовольствием посмотрел бы, как вы решите задачу на питоне одной строчкой без библиотек. Код: c# 1. 2. 3.
Уау ваще одной строчкай?! C# могуч! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:10 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
hVostt, Ну задание то прочтите хотя бы :) Я нисколько не сомневаюсь что могуч. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:15 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Более того - хочу узнать насколько могуч! Пока вижу только могучего Изопропил ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:17 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111, авторА вот Вы зачем вылезли непонятно. гыгыгы дядя вы дурак? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:23 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111Ну задание то прочтите хотя бы :) Да прочитал я, дебильное задание. Вот алгоритм: 1. Выясняем тип элементов в многомерном массиве. 2. Создаём одномерный массив-буффер динамически 3. Кастуем Buffer.BlockCopy Всё это разумеется safe. Оформляем в функцию. И выполняем её одной строчкой. Ибо если что-то нельзя выполнить одной строчкой, такой нед0-язык должен идти лесом, выкинуть его на свалку и затоптать ногами. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:40 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111с использованием рекурсии Какая ещё рекурсия, зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:42 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
hVostt Да прочитал я, дебильное задание. Вот алгоритм: 1. Выясняем тип элементов в многомерном массиве. 2. Создаём одномерный массив-буффер динамически 3. Кастуем Buffer.BlockCopy Всё это разумеется safe. Оформляем в функцию. И выполняем её одной строчкой. Q Брр.. Там наоборот же в задании. Из одномерного создать многомерный! Основная то проблема у меня и была - создать многомерный массив, не зная заранее его размерности. Вот Изопропил и подсказал нужную функцию. Обратное преобразование - многомерного в одномерный сложностей не представляет... hVosttИбо если что-то нельзя выполнить одной строчкой, такой нед0-язык должен идти лесом, выкинуть его на свалку и затоптать ногами. Это да. Согласен! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 10:50 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111, fil1111Брр.. Там наоборот же в задании. Из одномерного создать многомерный! Основная то проблема у меня и была - создать многомерный массив, не зная заранее его размерности. Вот Изопропил и подсказал нужную функцию. Обратное преобразование - многомерного в одномерный сложностей не представляет... Как так? fil1111Функция преобразует одномерный массив src в многомерный массив с элементами того же типа fil1111Опишите прототип функции, выполняющей обратное преобразование. Вот же. Обратное преобразование. Типа прямое это 1→М-мерный. Кривое какое-то задание. Где вообще такие глупости выдают? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 11:00 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
hVostt, Ну вот если внимательно прочесть, сделать то надо как раз преобразование 1-->M :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 11:07 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
fil1111hVostt, Ну вот если внимательно прочесть, сделать то надо как раз преобразование 1-->M :) Зеркальная реальность всё ж таки существует? Тогда забираю свои слова про питона, наверное он там и не в такие ленты мёбиуса сворачивается, некоторые задачи решаются в 0 строчек ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 11:17 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
hVostt3. Кастуем Buffer.BlockCopy с этого места поподробнее ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 15:01 |
|
Преобразование массива
|
|||
---|---|---|---|
#18+
Изопропил, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2016, 15:47 |
|
|
start [/forum/topic.php?fid=20&msg=39341687&tid=1400234]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 464ms |
0 / 0 |