|
Как создать многомерную матрицу?????
Как создать функцию чтобы создавала многомерную матрицу, например:
var border = Matrix(8,8) возвращает двумерную матрицу 8 на 8 а если передать Matrix(2,8,8,8,8)создаст пятимерную матрицу 2 на 8 на 8 на 8 на 8 |
Взять и написать. Интересуют конкретные ответы — задавайте конкретные вопросы.
|
Цитата:
На всякий случай задам конкретный вопрос чтобы и тебе было очевидно: Как конкретно создать функцию возвращающую многомерные матрицы? А если точнее , то какие буквы написать в теле этой функции? Перечислите пожалуйста набор букв которые я должна туда вписать, либо назовите порядок действий, а буквы для вписывания я сама подберу. |
Даша Соколова, я не заметил, чтобы B@rmaley.e><e обращался к Вам на "ты".
Цитата:
|
Цитата:
Лично я не могу, потому что выразительность языка не позволяет мне это сделать. |
Цитата:
Цитата:
|
Да знаю я про ваше "Пишите код мы покажем ошибку"
Ну хорошо. Пришлю вам вопрос конкретный: Функции рисующие матрицы я сделать могу , выразительность языка это позволяет(цикл в цикле), но функцию делающую матрицы с произвольным порядком выразительность языка не позволяет. было предпринято 2 попытки, первая: Наполнять массив массивами столько раз, сколько передано аргументов, и длинны массивов делать равными значением аргументов. но выразительная способность языка, как я уже говорила, не позволяет динамически получать доступ к свойству. Вторая попытка это наполнять матрицу с конца, то есть с самых дочерних её элементов, Засовывая и размножая их по родительским. Ну и естественно создавая родительские. Но выразительность языка не позволила сделать и это. |
Цитата:
var a = {b : {c : {d : 5}}}; var t = a.b.c; alert(a.b.c.d); t.d = 10; alert(a.b.c.d); Цитата:
|
Цитата:
[][][][] и сколько вот таких доступов должно быть (в данном случае 4) должно определяться числом. такого нет. |
var n = +prompt('Сколько?', 13), a = []; for (var i = 0, t = a; i < n; ++i) t = t[0] = []; alert(JSON.stringify(a))Для реализации Вашей задачи не хватает только стека, с помощью которого можно было бы возвращаться на верхние уровни. А стек и возвраты — это как раз про рекурсию. Проще всего сделать рекурсивный вариант. И, да, я его сделал. И мне хватило выразительности языка. |
Одноразовая почта на nwldx.com, ip 178.204… Livaanderiamarum, сколько можно плодить аккаунтов?!
|
Цитата:
|
Вот что у меня получилось, но у нас условие что нужно использовать только нативные обьекты js. JSON вроде не нативный.
function Matrix() { var matrix = new Array(arguments[arguments.length - 1]) for ( var i = arguments.length - 2; i >= 0; i--) { var temp = new Array(arguments[i]) for ( var j = 0; j < temp.length; j++) { temp[j] = JSON.parse(JSON.stringify(matrix)) } matrix = temp } return matrix } matrix = Matrix(3,4,5,6,7,8,92,4,34) создаст девятимерную матрицу с соответствующими длинами сторон. Подскажите как реализовываеться стек на js. Что массивом это я догадалась а как его использовать? |
Octane что? 10 минут мейл это почта на которой я зарегистрировалась, а форум ваш я читаю уже давно, ровно как и сайт. Просто сейчас возник вопрос и пришлось регистрироваться.
|
B@rmaley.e><e,
спасибо огромное за наводку! Читаю сейчас про стек. У меня вопрос к вам один, вы наполняли матрицу от родиьелей к детям, или создавали детей и копировали их в родителей? |
Ребят, ну помогите пожалуйста........
|
Все поняла, для перебора используем цикл только в нем используем не счетчик, а используем стек! Можете показать примера кода парни.. Очень прошу...
|
Цитата:
|
Я вообще не энаю кто это :)
|
TITS OR GTFO
|
Цитата:
Вроде программисты, а такие озабоченные. А если по теме, мне кто нибудь поможет? |
Цитата:
В интернете нету девушек, по-определению, до тех пор, пока не доказано обратное Цитата:
0) Создаем линейный массив размером, равным первому аргументу функции 1) Если N(количество аргументов функции) = 1, то заполняем массив нулями, или чем нужно Иначе, заполняем матрицами размерностью (N-1), вызвав рекурсивно текущую функцию со всеми аругментами кроме первого 2) ВОзвращаем заполненный массив |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
сдала через рекурсию
|
За что баним?
|
Даша Соколова, пока не баним) Но мы следим за вами))
Чтобы недопонимания между нами в дальнейшем не возникало, я думаю, имеет смысл пояснить несколько моментов. Здесь не уважают лентяев, очень недолюбливают хамов и крайне негативно относятся к неадекватам. Как правило, банят за последнее, за первых два пункта просто минусуют. Зато здесь очень уважают вежливых воспитанных людей, желающих учиться самостоятельно. К сожалению, за вами данных качеств не было замечено (потому что иначе бы вы сюда не написали - чтобы понять, как написать многомерные матрицы на JS, достаточно прочитать статью про матрицы на Википедии и учебник по JS (в принципе, можно даже не весь - основы и раздел про массивы)). А после намёка на то, что это можно сделать самостоятельно - вы начали обвинять собеседника в низких интеллектуальных способностях. Согласитесь, это как минимум неуважительно. После того, как вы начали кидаться и на остальных, участники данного форума небезосновательно предположили, что вы - один из клонов известного местного блаженного под ником Livanderiaamarum. Ну, а просьба показать сиськи - это просто специфика компьютерных форумов ;) Вот и всё, надеюсь, в дальнейшем вы будете более спокойны и адекватны. Ах да - ещё здесь плюют ядом в тех, кто как-то пытается намекнуть на несовершенство языка. |
Цитата:
Вот мне помог тут один человек из всех, остальные язвили и стебались, и он по началу тоже. Советовали начально изучить жс и все в таком роде. Хотя жс к матрицам не имеет отношения. Естественно я воспринимаю это как нападки в мой адрес и как стеб. |
с рекурсией проблема, что не так в этом коде?
function Matrix() { if (arguments.length > 1) { var q = Array.prototype.shift.call(arguments) var matrix = new Array(q) for ( var i = 0; i < matrix.length; i++) { matrix[i] = Matrix.apply(null, arguments) } return matrix; } else { return new Array(arguments[0]) } } |
Цитата:
Наверно вас смутило, то что на alert(Matrix(3,3,2)), вам выдало такой набор запятых ,,,,,,,,,,,,,,,,,, как буд-то массив линейный? На самом деле массив вполне нормальный, трехуровневый, и все такое. Для того чтобы работать/отлаживать JS вам необходимо освоить средства отладки в барузерах. Сейчас для каждого браузера есть встроенный, либо доступный в виде отдельного плагина инстурментарий разработчика. Например Firebug для Firefox В частности вы можете выводить отладочную информацию(в любом инструменте разработчика) через console.log(), и в консоли отобразится структура объекта |
Gvozd,
да, спасибо меня мутил не алерт. Меня смутило то что вывела консоль. function Matrix() { if (arguments.length > 1) { var q = Array.prototype.shift.call(arguments) var matrix = new Array(q) for ( var i = 0; i < matrix.length; i++) { matrix[i] = Matrix.apply(null, arguments) } return matrix; } else { return new Array(arguments[0]) } } console.log(Matrix(3,3,3)) |
Ой, точно работает! Значит у меня хром подглючивал. Ну бывает у него.
Спасибо большое Gvozd за навродку на рекурсию ^^ ![]() Хотела написать лапка получилось папка ) А есть еще какие то приемы которые мне нужно знать? |
Фига у nemo титьки :blink:
|
Изоморф :D
|
упс. так значит, я ошибался
|
Цитата:
|
я думал, что это andmeriemarum (или как его там. авка тоже с котом)
или это он и есть? он же кидал ссылку на профиль вконтакте. надурил? манера разговора та же самая ведь) |
Цитата:
|
Часовой пояс GMT +3, время: 02:33. |
|