zeratuls Ierakstīts Augusts 16, 2013 Share Ierakstīts Augusts 16, 2013 Sveiki. Loti steidzami vajag saskaitīt, cik ir 1 cik 2 cik 3 utt. Mana gadījuma šablons, un tādi ir 50 dažādi, ar acīm un roku bišķin ilgi {1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,1,1,0,2,0,0,0,0,0,0,2,3,2,1,1,0,2,2,0,0,0,0,0,0,0,0,1,1,0,1}, {1,0,1,1,2,2,3,4,5,0,0,4,0,2,4,1,1,0,4,3,2,2,0,0,0,2,2,4,1,1,0,1}, {1,0,0,2,2,0,4,3,0,0,5,0,2,0,2,0,0,0,2,2,0,0,0,0,0,4,5,2,2,0,0,1}, {1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,4,2,2,2,0,0,3,0,2,3,0,0,1}, {1,0,2,2,2,3,0,0,2,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,4,2,5,4,0,0,0,0,0,2,2,5,4,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,1}, {0,0,0,0,3,4,0,0,0,0,0,3,3,0,0,0,0,0,0,5,4,2,2,3,4,5,0,0,0,0,0,0}, {0,0,2,2,2,3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,5,4,2,2,3,4,5,0,2,0,2,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,0,0,3,4,1,1,4,5,0,0,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,0,0,3,4,1,1,4,5,0,0,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,2,2,2,3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,5,4,2,2,3,4,5,0,2,0,2,0}, {0,0,0,0,3,4,0,0,0,0,0,3,3,0,0,0,0,0,0,5,4,2,2,3,4,5,0,0,0,0,0,0}, {1,0,4,2,5,4,0,0,0,0,0,2,2,5,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1}, {1,0,2,2,2,3,0,0,2,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,3,4,2,2,2,0,0,3,0,2,3,0,0,1}, {1,0,0,2,2,0,4,3,0,0,5,0,2,0,2,0,0,0,2,2,0,0,0,0,0,4,5,2,2,0,0,1}, {1,0,1,1,2,2,3,4,5,0,0,4,0,2,4,1,1,0,4,3,2,2,0,0,0,2,2,4,1,1,0,1}, {1,0,1,1,0,2,0,0,0,0,0,0,2,3,2,1,1,0,2,2,0,0,0,0,0,0,0,0,1,1,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1} Link to comment Share on other sites More sharing options...
_dunduks_ Augusts 16, 2013 Share Augusts 16, 2013 (labots) man sanāk citādāk: 0 4271 1482 1013 304 405 22 īzzī & pīzī to visu ekselī Labots Augusts 16, 2013 - _dunduks_ Link to comment Share on other sites More sharing options...
_dunduks_ Augusts 16, 2013 Share Augusts 16, 2013 es redzu/man kopējas tikai 32x24. Link to comment Share on other sites More sharing options...
aikoN Augusts 16, 2013 Share Augusts 16, 2013 Hehe, interesting! Te būs mans risinājums- no db kodera skatu punkta declare @shablons varchar(max) = 'te,taa,garaa,pentere' set @shablons = replace(replace(replace(@shablons,'{',''),'}',''),space(1),'') declare @x xml = cast('<A>'+ replace(@shablons,',','</A><A>')+ '</A>' as xml) select skaitlis,count(*) from (select t.value('.', 'varchar(max)') as skaitlis from @x.nodes('/A') as x(t) ) x group by skaitlis Sanāk:0 4271 1482 1013 304 405 22Ir vēl n-tie veidi kā iekš SQL šo risināt, bet man patīk xml metodes dēļ performance Link to comment Share on other sites More sharing options...
Inspektors Caps Augusts 17, 2013 Share Augusts 17, 2013 Loti steidzami vajag saskaitīt, cik ir 1 cik 2 cik 3 utt. Kas Tu par programmētāju, ka nevari pa fikso uzcept tādu programmu? mans nesenākais atklājums - 'Java' ir 1.5x ātrāka par 'C++' uz math uzdevumiem Tas parāda tikai to, ka atklājums, ka nemāki pienācīgi kodēt C++, Tev vēl ir priekšā. Visdrīzāk Tu domā pārāk high-level, esi pārobjektorientējies un vai ciet no kādas citas modernās programmēšanas zombijmācības kaites, un tādēļ veido stulbu C/C++ kodu. Tas nav personīgs apvainojums, bet vispārīga atziņa par mūsdienu programmētājiem. Link to comment Share on other sites More sharing options...
itanium Augusts 17, 2013 Share Augusts 17, 2013 A tu no nākotnes vai pagātnes? Link to comment Share on other sites More sharing options...
Inspektors Caps Augusts 17, 2013 Share Augusts 17, 2013 A tu no nākotnes vai pagātnes? Nākotni jau neviens nezin, tā kā par to nezinu. Priekš sevis esmu no tagadnes, bet pēc vidējā tagadnes subjekta domiņām esmu no pagātnes, kad koderi vēl domāja paši ar savu galvu, nevis tikai klausījās atvērtām mutītēm. nu kods tik vienkāršs Un te nu parādās problēma - pat tik vienkāršā kodā moderns koderis nespēj saprast savu fundamentālo kļūdu. Cilvēk... Tu taču tur nemaz nemēri skaitļošanas performanci, bet ko pavisam citu! Mazsvarīgāka nianse: float diff ((float)t2-(float)t1); Pirmkārt jau tur kaut kas neklapē ar sintaksi, bet tas tā. Galvenais - kādēļ abi tiek konvertēti uz float un tad atņemti nevis atņemti tie paši clock_t, kas ir veseli tipi? It kā jau nekas svarīgs, bet.. liecības par domu gājienu... Link to comment Share on other sites More sharing options...
usver Augusts 17, 2013 Share Augusts 17, 2013 Loti steidzami vajag saskaitīt, cik ir 1 cik 2 cik 3 utt. 1) iekopēt jebkurā sakarīgā redaktorā ( notepad2, editplus, notepad++, pat Notepad derētu) 2) for each ( 1 , 2 , 3 as SKAITLIS ) { "Find and replace" SKAITLIS , replace with "X" -> Replace all -> YYY objects replaced; write down YYY; Ctrl+Z; } Link to comment Share on other sites More sharing options...
Inspektors Caps Augusts 17, 2013 Share Augusts 17, 2013 es pat nesaprotu par ko tu tagad runā - kaut kas tiek skaitļots, tad ko es īsti mēru, ja ne skaitļošanas preformanci? Daudziem ir tāda problēma - tik tālu attālinājušies no realitātes, ka tad, kad kāds par to runā, pat vispār nesaprot! Tam galvenajam FORam taču ir tikai divas rindiņas... Vai tiešām ir tik grūti saprast kas tur ir "nepareizi"? Paštuko vēl, bet, ja kas, tad sveci zem pūra neturēšu un nākošnedēļ pateikšu atbildi. Link to comment Share on other sites More sharing options...
Somebody Augusts 18, 2013 Share Augusts 18, 2013 (labots) Bash shell ar palīgprogrammām: saturs iekopeets failā a.txt $> cat a.txt |sed 's/^[ \t]*//'| sed 's/[{}]//g'|sed 's/,$//'| sed 's/,/\n/g' | awk '{a[$0]++}END{for(i in a)print i,a[i]}' |sort 0 4271 1482 1013 304 405 22 Labots Augusts 18, 2013 - Somebody Link to comment Share on other sites More sharing options...
camel Augusts 18, 2013 Share Augusts 18, 2013 Un neviens neielika C# kodu! (uz dumiem jautājumiem neatbildam?) var s1 = File.ReadAllText(@"c:\a0\111.txt"); var ss = s1.Split(new char[] { ' ', ',', '{', '}', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); var gr = from num in ss group num by num into g orderby g.Key select new {g.Key, ct = g.Count()}; var s2 = ""; foreach (var v in gr) s2 += string.Format("{0}: {1} \n", v.Key, v.ct); MessageBox.Show(s2); Link to comment Share on other sites More sharing options...
marrtins Augusts 18, 2013 Share Augusts 18, 2013 Perl while(<>){$_=~s/[\s,{}]//g;while (/(.)/g){$a{$1}++;}};foreach $k(keys %a){print "$k=$a{$k}\n"}; perl skript.pl < a.txt Saīsināts Sombody skripts: cat a.txt|tr -d "\t\n {}"|sed 's/[,]/\n/g'|awk '{a[$0]++}END{for(i in a)print i,a[i]}'|sort Link to comment Share on other sites More sharing options...
Inspektors Caps Septembris 7, 2013 Share Septembris 7, 2013 neturi gan to sveci zem pūra, tik jāatceras, ka tas 'for' cikls tiek izpildīts 47 reizes, bet pati programma uz manas kastes izpildās 25-35 sekundes, tā ka diez vai tur ko vērts optimizēt Beidzot saņēmos un patestēju to programmu. Tad nu tā.. Rezultāti uzrādīti milisekundēs. * Tiešais dotais variants (ms): Java - 46800, C++ - 60300, C - 59800. * Eksperimentam pievienoju rekursīvās funkcijas izsaukumam __fastcall: C++ - 53200, C - 53400. * Tad vēl intereses pēc izmēģināju to pašu ar nerekursīvu funkciju, tikai palielinot iterāciju skaitu līdz 4700: Java - 600, C++ - 2550, C - 600. 1. Jāatzīst, ka rezultāti ļoti interesanti. Nedaudz pārsteidza tas, ka oriģinālajā variantā Java tiešām bija ātrāka, tiesa ne jau pusotru reizi, bet par ~10%. Kā noprotams no koda un netieši apstiprina arī __fastcall, tad visdrīzāk tas ir saistīts ar funkcijas izsaukumu overhead attiecībā pret reālā aprēķinu koda apjomu. 2. Kas pie velna notiek ar C++ pēdējā variantā? Tā kā tur ir 4700 izdrukas konsolē, tad ticamākais - cout sucks big time. 3. 47 skaitļi ~50 sekundēs ar debīli pielietotu rekursiju pret 4700 skaitļiem 0,6 sekundēs ar visparastāko funkciju. Kārtējo reizi varam secināt to, ka ne jau valoda vai kompilators ir programmas snieguma un kvalitātes galvenie nodrošinātāji, bet pats programmētājs. Link to comment Share on other sites More sharing options...
Inspektors Caps Septembris 7, 2013 Share Septembris 7, 2013 Tak neuztver to uz sevi personīgi. Tīri tehniski, ja funkcijas izsaukums noēd vairāk CPU kā pati darbība, tad tas taču ir debīls pielietojums, ne? Starpcitu, nesen skatījos multeni "Sprīdītis" un tur padomju laika (it kā taču bija bargāka cenzūra) bērnu multfilmā bez kādas kautrēšanās tiek lietoti vārdi "diedelnieks", "kverplis" un citi. Izlieniet taču reiz no tās politkorekti pārjēlās pasaules, kur kaut kāda patētisma dēļ sliktās lietas nedrīkst saukt īstajos vārdos. Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!