Loading...
ochikov avatar ochikov 35 Точки

7. Magic Matrices

Здравейте,

Може ли малко помощ с тази задача.

function solve(input) {
				
				var matrix = input.map(row => row.split(' ').map(Number));
				var sum1 = 0;
				var sum2 = 0;
				for (let row = 0; row < matrix.length; row++) {
					for (let col = 0; col < matrix[row].length; col++) {
					
					/////////////
					
					}
				}
				
				
				
			}

Стигам до тук, където имам всеки елемент от ред и колона.

Ако кажа sum1+= matrix[row][col] ми прави сумата на всички елементи. Как да огранича при първото завъртане да върти само до последната колона?

Ако може да дадете и малко обучителни материали за тези матрици ще е добре - някое видео или нещо..благодаря!

Тагове:
1
JavaScript Fundamentals
annsta avatar annsta 305 Точки
Best Answer

Трябва да направиш два отделни цикъла - един за проверка на сумите по редове и един за проверка на сумите по колони. Ето едно решение от мен.

2
ochikov avatar ochikov 35 Точки

Здравей,

Благодаря за отговора.

Можеш ли да ми поясниш какво точно се случва с този ред:

 

matrix[0].forEach(x => sum += x);

 

Благодаря.

0
annsta avatar annsta 305 Точки

Здравей, с този ред изчислявам референтна сума от елементите на първия ред на матрицата. Кодът може да се чете така: обхождаме ред 0 на матрицата (matrix[0]) и на всеки елемент на реда правим някакво действие (.forEach(x => някакво действие)), в случая - добавяме елемента към предишната стойност на sum (sum += x), която първоначално е нула. Вместо горния код, може да се използва цикъл за обхождане на колоните и сумиране на елементите:

let sum = 0;
for (let col = 0; col < matrix[0].length; col++)
     sum += matrix[0][col];

Използвам референтната сума за сравняване с всяка една от следващите изчислени суми по редове или колони и ако някоя от следващите суми се различава от референтната, се връща false, т.е. не всички редове и колини имат еднаква сума. Ако нито една изчислена сума не се различава от референтната, се връща true. Надявам се тези обяснения да ти бъдат от полза.

0
JivkoJelev avatar JivkoJelev 235 Точки

Да не правя отделна тема , ето го и моето решение което ми дава 80/100.Някой ако може да види кода ще съм му благодарен.Ето го и него http://pastebin.com/M1apxTTB

0
CvetanPetkov avatar CvetanPetkov 47 Точки

Този код не проверява ли матрица само от 3 реда? Разгледа ли тази тема?

https://softuni.bg/forum/12081/07-magic-matrices-array-matrices-exercise

1
JivkoJelev avatar JivkoJelev 235 Точки

Направих го да проверява и всички колони и всички редове , но пак 80-точки.Сега разгледах другата тема и там всички получават 80/100; Ще трябва май да променя целият код за да взема 100 от 100.Благодаря ти за линка от другата тема , в гугъл , само тая ми излизаше свързана с тази задача.

0
naskou avatar naskou 4 Точки
function magic(arr) {
    var random = Math.random() >= 0.5;
    console.log(random);
}

От 5 опита се получи :D

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.