Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   9-ти разрядная матрица (https://javascript.ru/forum/project/30593-9-ti-razryadnaya-matrica.html)

Mersedes! 09.08.2012 13:12

9-ти разрядная матрица
 
Всем здравствуйте! Это моя первая работа на JS : )
Думаю все знают что такое математическая матрица. В этом простеньком скрипте продемонстрирован перебор всех возможных 9-ти разрядных матриц в числовом диапазоне от 100 000 000 до 900 000 000. Например от ста до двухсот миллионов их - 94. Сколько матричных комбинаций в миллиардном диапазоне не знаю, т.к. до конца не проверял : )


var counter = 0;
var matrix = "100000000";
              
while ( matrix != "900000000" )
{
	parseInt( matrix++ );//  увеличиваем каждый раз число на 1
	matrix += "";//  Преобразуем в строку
	
		
	if ( parseInt( matrix.charAt(0) )  +  parseInt( matrix.charAt(1) )  +   parseInt( matrix.charAt(2) ) == // Если 1-ая горизонталь равна 2-ой
		 parseInt( matrix.charAt(3) )  +  parseInt( matrix.charAt(4) )  +   parseInt( matrix.charAt(5) ))
	{
	}
	
	else
		continue;
			
	if ( parseInt( matrix.charAt(3) )  +  parseInt( matrix.charAt(4) )  +   parseInt( matrix.charAt(5) ) ==// Если 2-ая горизонталь равна 3-ей
		 parseInt( matrix.charAt(6) )  +  parseInt( matrix.charAt(7) )  +   parseInt( matrix.charAt(8) ))
	{
	
	}
	
	else
		continue;
	
	if ( parseInt( matrix.charAt(0) )  +  parseInt( matrix.charAt(1) )  +   parseInt( matrix.charAt(2) ) ==// Если 1-ая горизонталь равна 3-ей
		 parseInt( matrix.charAt(6) )  +  parseInt( matrix.charAt(7) )  +   parseInt( matrix.charAt(8) ))
	{
		
	}
	
	else
		continue;
	
	if ( parseInt( matrix.charAt(0) )  +  parseInt( matrix.charAt(3) )  +   parseInt( matrix.charAt(6) ) ==// Если 1-ая вертикаль равна 2-ой
		 parseInt( matrix.charAt(1) )  +  parseInt( matrix.charAt(4) )  +   parseInt( matrix.charAt(7) ))
	{
		
	}
		 
	else
		continue;
	
	if ( parseInt( matrix.charAt(1) )  +  parseInt( matrix.charAt(4) )  +   parseInt( matrix.charAt(7) ) ==// Если 2-ая вертикаль равна 3-ей
		 parseInt( matrix.charAt(2) )  +  parseInt( matrix.charAt(5) )  +   parseInt( matrix.charAt(8) ))
	{
		
	}
		 
	else
		continue;
		 
	if ( parseInt( matrix.charAt(0) )  +  parseInt( matrix.charAt(3) )  +   parseInt( matrix.charAt(6) ) ==// Если 1-ая вертикаль равна 3-ей
		 parseInt( matrix.charAt(2) )  +  parseInt( matrix.charAt(5) )  +   parseInt( matrix.charAt(8) ))
	{
		
	}
		 
	else
		continue;
		 
	if ( parseInt( matrix.charAt(0) )  +  parseInt( matrix.charAt(4) )  +   parseInt( matrix.charAt(8) ) ==// Если одна диагональ равна другой
		 parseInt( matrix.charAt(2) )  +  parseInt( matrix.charAt(4) )  +   parseInt( matrix.charAt(6) ))
	{
		counter++;
		
		alert( "   ~~" + matrix + "~~" + "\n" + "Найдено матриц: " + counter );
	
		
	}
	
	
	
}

B@rmaley.e><e 09.08.2012 13:44

Что такое разряд матрицы? Что означает принадлежность матрицы диапазону?

Mersedes! 09.08.2012 13:59

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 195880)
Что такое разряд матрицы? Что означает принадлежность матрицы диапазону?

Разряд матрицы, то же самое что и разряд числа. А второй вопрос я вобще не понял. Что именно вам непонятно про диапазон ? от n до m - вот и весь диапазон.

B@rmaley.e><e 09.08.2012 14:07

Цитата:

Разрядность числа в математике — количество числовых разрядов, необходимых для записи этого числа в той или иной системе счисления. Разрядность числа иногда также называется его длиной.
Цитата:

Разряд (позиция, место) — это структурный элемент представления чисел в позиционных системах счисления.
Цитата:

Позиционная систе́ма счисле́ния (позиционная нумерация) — система счисления, в которой значение каждого числового знака (цифры) в записи числа зависит от его позиции (разряда).
Какое ещё позиционное исчисление для матриц?

Цитата:

Сообщение от Mersedes!
Что именно вам непонятно про диапазон ? от n до m - вот и весь диапазон.

От m до n — множество чисел (целых, рациональных, вещественных — не суть как важно, главное, чтобы отношение порядка было). Матрицы же принадлежат кольцу матриц над числами. Поэтому что понимать под
Цитата:

Сообщение от Mersedes!
матриц в числовом диапазоне

решительно непонятно, ибо смешиваются понятия разной природы.

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

Mersedes! 09.08.2012 14:17

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 195892)

Если говорите о математике, то используйте математические термины корректно.

Я высшую математику не знаю. ВУЗ не заканчивал. Просто из учебника по С++ взял эту задачку. Число состоит из цифр - чтобы получилась 9-ти значная матрица нужно чтобы цифры(разряды) были в сумме одинаковы по всем вертикалям, горизонталям и диагоналям.


Часовой пояс GMT +3, время: 23:43.