Матрици!

18 отговора 1661 прегледа
#1

Матрици!

Ако е дадена матрицата А[j],то как се намира най-големия елемент в матрицата!Примерно имаме матрицата
1 3 5 6 7
9 4 3 1 3
0 0 0 0 10
4 6 9 9 9
1 2 3 4 5
трябва да изведе 10.Идея си нямам!

Отговор
в отговор на sisi #2

Re: Матрици!

Висша математика трябва. Намираш локалните екстремуми, правиш нова матрица с тях, отново намираш екстремумите и така, докато остане само един елемент.

Сигнатура!
Отговор
в отговор на sisi #3

Re: Матрици!

Като си прочетеш лекциите/учебника/упражненията/каквото там имаш...

Понякога съм толкова добра,
че цялата изтръпвам и боли ме...
Отговор
в отговор на Beнaбили #4

Re: Матрици!

Или с малко мислене?

Отговор
в отговор на sisi #5

Extremumi???

Uf, kakwi extremumi, kakwi 5 lewa? Ako sam razbral prawilno, prosto triabwa da se obhodiat wsichki elementi na matricata i da se nameri koi e naj-golemia... Nesto po-ewektiwno mislia che ne move da se izmisli...

Отговор
в отговор на sisi #6

Re: Матрици!

Mайтапят се хората,
но за такъв въпрос ...

a_max:=A[1,1];
for k:=1 to 5 do
for j:=1 to 5 do
if A[k,j]>a_max then a_max:=A[k,j];
Writeln(a_max);


Така е на паскал. (за матрица 5 по 5)
Лесно ще си го препишеш на какъвто там
език ползваш.

Отговор
в отговор на Pesho #7

Re: Extremumi???

ни са шашкай. може момичето да пита за аналогови компютри (не че имам представа там как се намира максимум )

Сигнатура!
Отговор
в отговор на Eмил #8

Re: Матрици!

Понапъни сивото пич Сиси може да е момиче а О^2 не е малко, пък и кода ти е закотвен с тези цифри в него.

I wanna read interesting postingz
Отговор
в отговор на Questor #9

Re: Extremumi???

ми по нормалния начин там, с производните алабала...бе аналогови компютри, нали знаеш

Отговор
в отговор на sisi #10

Re: Матрици!

аз за най-малкия знам, ама за най-големия не се сещам

Отговор
в отговор на Viper X #11

Re: Матрици!

Намираш най-малкия в инвертираната матрица и го инвертираш - просто е

Отговор
в отговор на sisi #12

Абе не сте съвсем прави

На пръв поглед наистина изглежда, че няма друг начин, освен да се обходят всички елементи. Ако имаме векторен процесор обаче, може и по-бързо да стане.

Така като ги гледам числата са малки и цели, тоест може да свършат работа и MMX инструкциите. На N стъпки правим OR поотделно на n-те реда (или колони, без значение). Така намираме нужния ред (дано няма много колизии). После обхождаме само този ред на още N стъпки, за да си намерим екстремума.

Ще работи за числа <256, а за колоните и редовете, ако са повече, няма проблем, ама малко ще се усложни кодът.

Недостатък е, че ще са ни необходими N временни променливи вместо една, ама нали бързина гоним.

Отговор
в отговор на hoopla #13

Re: Абе не сте съвсем прави

Постингът ти ме заинтригува, ще обясниш ли малко по-подробно, и ако може да се подкреписш с някое url :)

Отговор
в отговор на expeler #14

Re: Матрици!

"а О^2 не е малко,"

Ako priemem che dejstwieto se razwiwa na edin obshtopriet abstrakten komputar (srawnenieto na 2 chisla otnema edinica wreme i ednowremenno se srawnqwat ne poweche ot dwe chisla)

to slovnostta na algorityna predloven po nagore e tochno O(n) , kydeto n = 25 - dave na praktika shte se izwyrshat 24 srawneniq.

AKo komputara move da srawnqwa nqkolko chisla nawednyv togawa i po-malko ot 25 (24). No nikoga O(n^2) ...

za kakwo O^2 stawa duma ?

Yontchew

Отговор
в отговор на Yoncthew #15

Re: Матрици!

Пич ти каде живееш? Там кадето всички матрици са 5x5 ли? Нямам време да споря за глупости. Аре успехи.

I wanna read interesting postingz
Отговор
в отговор на expeler #16

Re: Матрици!

Viweq na razlichni mesta prez razlichnite dni ...

5x5 ili KxK nqma znachenie .... slovnostta na zadachkata si e O(n)

Uspehi i na teb!

Yontchew

Отговор
в отговор на Yontchew #17

Re: Матрици!

я и аз да се намеся - ако N е размера на квадратна матрица, а n = N*N, тогава сложността наистина е О(n). Ама е O(N^2)....

Сигнатура!
Отговор
в отговор на Questor #18

Re: Матрици!

Ochewidno sporyt se dylvi na towa, che ne se utochnqwa kakwo wzimame za razmer na whodnite danni !
Razmera na matricata ili broq na chislata w neq ?

Ako smqtash slovnostta sprqmo razmera na matricata togawa da - O(n^2), no po-byrz algoritym prosto nqma (oswen ako nqma nqkakwi drugi uslowiq) - taka che otnosno gornata zabelevka deto O(n^2) ne bilo malko , se pita koe shte e po-byrzo?

A ako smqtash slovnostta standartno sprqmo razmera na whodnite danni
togawa tq e O(K) - linejna slovnost (K = n*n , n razmer na matricata, K e broq na chislata).

pochitaniq,
Yontchew

Отговор
в отговор на Yoncthew #19

Open your mind!

Абе винаги може да се направи по-бързо!

Пускаш си клъстер от n компютъра и им даваш по един ред в който да намерят най-голямото число, така използваш максимално времето за работа. После имаш само да минеш още веднъж през отговорите и да вземеш най-големия. Така сложността пада едва на O(n).

Ама ако НАИСТИНА искаме да е много много много бързо, а точността не е от чак толкоз голямо значение, можем да напишем:

return a[0][0];

Така методът е с висока бързина, и отговорът е с достоверност 1/(n*n).

Аналогично може да се задава доверителна вероятност и да се проверява определена част от елементите.

Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Отговор