» »

programska uganka

programska uganka

StratOS ::

Evo ene dobre uganke !
Najdi produkt X * Y, pri čem so X in Y cela števila med 1 in 999
Od teh produktov najdi takšne produkte od vseh, ki so palindromi (enako berejo od zadaj kot od spredaj).
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

ToniT ::

Rešitev.

Zraven so tudi števila od 1 do 9.

StratOS ::

ja, števila so v redu, treba pa le Od teh produktov najdi takšne produkte od vseh, ki so palindromi (enako berejo od zadaj kot od spredaj).

rešitev pa ni 2470546980 ali 2504001600 !!!

originalen text :
Heres your next challenge, I think you will find this one quite fun.
Find the products of X times Y, where X and Y are integers which are greater than 0 and less than 1000.
From these products find the sum of any which are palindromes.
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

rasta ::

Takih števil je 2539 (skupaj s števili od 1 do 9), vsota pa mi pride 255.010.259 (255.010.214 brez števil od 1 do 9).
Kakšna je rešitev?

Zgodovina sprememb…

  • spremenil: rasta ()

StratOS ::

ne eno in ne drugo, kje si ti dobil tako veliko palindromov ??? Kakor jaz vem jih je 108, tukaj maš pa še Exe fajl, ki ti prikaže koliko jih je, kje si jih ti dobu več kot 2k ???

Rešitve še ne vem, ker je še ne poznam :(

Ne prvi in ne drugi odgovor ni pravilen. Jaz sem pri prvem kalkoliral vse Xi*Yj pri čem sem upošteval enkrat da je lahko i=j in enkrat da ne, številke od 1 do 9 pa so palindromi ...
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

freejack ::

Ja pismo, program naj eden napiše, pa boste vidli kakšna je rešitev... V tem času ko ugotavljate, bi to laghko že kdonaredil.. :) :)

StratOS ::

bil sem malce prehitr : Tukaj je exe, rezultat pa še vedno ni pravi ? Premalo palindromov ???
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

StratOS ::

za tiste, ki se želijo sami pregledati svoj rezultat naj pogledajo toje Uganko, seveda pa morejo prej biti registrirani :)

.. še prej pa priti do 3 levela :) pozabu :)
go ahead :)
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

rasta ::

StratOS: tvoj program izpiše polinome samo od 1 do 999, ne pa produkktov ševil X in Y, ki sta od 1 do 999.
Tukaj so moji palindromi.

Zgodovina sprememb…

  • spremenil: rasta ()

StratOS ::

804 * 814 = 654456
812 * 858 = 696696
814 * 819 = 666666
814 * 834 = 678876
819 * 913 = 747747
831 * 968 = 804408
836 * 836 = 698896
844 * 957 = 807708
847 * 871 = 737737
847 * 921 = 780087
848 * 946 = 802208
858 * 966 = 828828
863 * 869 = 749947
867 * 924 = 801108
868 * 946 = 821128
869 * 913 = 793397
869 * 932 = 809908
869 * 982 = 853358
888 * 946 = 840048
894 * 957 = 855558
897 * 924 = 828828
902 * 909 = 819918
902 * 914 = 824428
913 * 993 = 906609
916 * 968 = 886688
924 * 932 = 861168
924 * 962 = 888888

na koncu ti kodo zmleje :)
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

StratOS ::

nov exe fajl je na Tukaj, vendar rešitev še ni pravilna :), ne vem kje je vzrok za napako ????>:D
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

ToniT ::

Program ti dela v redu, samo da ti išče palindrome do 1000 (produkt) in tudi 108 je pravo število. Če želiš, da ti bo delalo v redu, moraš imeti max. število 100000, kajti 999*999 je 998001.
(To je napisal že rasta)

Sicer pa je rešitev zgoraj, razlika med mojo in rastovo je v tem, da se meni palindromi ne ponavljajo, pri njemu pa.

Primer:
84 * 962 = 80808
91 * 888 = 80808
104 * 777 = 80808
111 * 728 = 80808
148 * 546 = 80808
156 * 518 = 80808
168 * 481 = 80808
182 * 444 = 80808
222 * 364 = 80808
259 * 312 = 80808
273 * 296 = 80808


StratOS ::

narobe sem zastavil vprašanje !
Heres your next challenge, I think you will find this one quite fun.
Find the products of X times Y, where X and Y are integers which are greater than 0 and less than 1000.
From these products find the sum of any which are palindromes.
dejansko iščeš vse produkte X * Y, dobiš rezultat , če je ta rezultat palindrom ( produkt ) seštej te produkte !

No to je bolj easy :)
Hvala za napačno predstavitev :)
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Monster ::

ne kampiram ka bi radi.. oz ka je to palindrom(al ka pac je) :)... dej mal razlozi na kmecko logiko...

pravis da je treba pomnozit VSE moznosti in sicer X * Y oba sta med 0-1000... sm ka pol nardis z tem rezultatom...

lp
Ka zaboga...

ender ::

A potem je rezultat 509033471?
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

StratOS ::

Po domače imaš X-se in Y-ne
1 < X < 999
1 < Y < 999

narediš vse pare Res(i,j)= Xi*Yj (1 < i,j < 999)
izmed Res(i,j) sumiraj tiste ki so palindromi.

A razumeš zdaj kakšno je bilo vprašanje, 509033471 ni pravilen odgovor, kmalo bom pa naredu exe za to, vendar je kr programsko zahtevno ( časovno to v VB), naredil bom še v ASM-u, da bo hitrejše. Za rezultat vam bom povedal, trenutno sem pri 14% ( hja počasno to v VB)
Ne vem pa sploh koliko časa bo to trajalo :( par urc ??

Skušajte narediti da ti ta rezultat "preprosto" pljune ....


do naslednjič
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

ToniT ::

Če upoštevaš vse palindrome, je rezultat 509033471, kot je zapisal ender,
če pa upoštevaš vsako vrednost samo enkrat, pa je rezultat 143690752.


ender ::

StratOs, če sem te prav razumel moraš naresti tole:
1*1=1, 2*1=2...999*999=998001, nato pa sešteješ tiste rezultate, ki so palindromi. Program za to sem napisal v 2 minutah, za izračun pa je porabil manj kot minuto...
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

StratOS ::

right pomota, ja seveda je pravilen rezultat, heh kako sem se mogel tako ušteti ...
in še proggy Palindromes.exe
Sorry za nepravilno informacijo, ki je nisem preveril ...
Dal sem pa vam na znanje da naredite to v ASM, veselo na delo ...
preverite malo hitrost programčka ...


za 100 je moj rezultat ...
Calculation end :
Sum of all palindroms:579751
It took 10195 ms (333MHz pentium 2)

za 999 pa je premalo spomina v textboxu (max 64 kB) !!! in ne napiše časa, lahko pa testirate
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

StratOS ::

aha source code za VB je Tukaj, če hoče še kdo da napišem v ASM, pa rajši to naredite sami ...
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

rc-car ::

Heh.. :)

Rezultat za integerje od 1 do 999 je 509033471 in je izračunan v nekaj sekundah skupaj z izpisom zmnožkov na ekran.
Rezultat za integerje od 1 do 99 pa je 579751 in je izračunan prej kot v pol sekunde.

StratOS, čudne programe pišeš, da so tako počasni...

Addon: Rezultat za integerje od 1 do 9999 pa je 1368177254 in je izračunan (skupaj z izpisom) v manj kot dveh minutah. 8-)
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

Zgodovina sprememb…

  • spremenil: rc-car ()

StratOS ::

hja comp je bolj švoh, pa VB tudi, kar se pa tiče kode, bi jo se še dalo bolje optimizirat, no pa mi povej kje imaš ti svoj proggy, ga bom jaz v ASM-u naredu pa bomo vidl :)
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

rc-car ::

Jaz sem pisal v Pascalu (heh), pod XPji in računalnik ni bil niti približno neobremenjen. Pa pustimo to, koda pa zgleda nekako takole:


v:=0;
for i := 1 to n do
for j:= 1 to n do
begin
k:=i*j;
if palindrom(k) then
begin
v:=v+k;
writeln(i,' * ',j,' = ',k);
end;
end;
writeln('Vsota: ',v);


S tem, da imamo še eno funkcijo kjer preverimo ali je številka palindrom ali ne in pa definiramo vse spremenljivke in konstanto n (999) - vendar je to samo po sebi razumljivo :)
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

Zgodovina sprememb…

  • spremenil: rc-car ()

StratOS ::

razlika je seveda delati v objektnem programskem jeziku ( pot jaz npr z svojim programom v VB) ali v pascalu/C++ v neobkjektnem načinu, pa tudi velika razlika je med pascalom/C++ in ASM, bistvo je pa da si dobil prav rezultat ...
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

rc-car ::

No, saj sem rekel, da pustimo to.

Boš napisal pol v ASM?
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

toplakm ::

Mene pa zelo zanima, kakšna je ta huda razlika, ki loči naprimer VB od pascala pri programiranju takšnih programčkov.

Kolikor poznam "vizualna" programska okolja se da tam vsak programček isto napisat. Namesto v glavno funkcijo programa ga lahko napišeš v eno funkcijo, ki se potem lepo požene, v končno tekstno okence pa lahko izpljune samo rezultat, da ne bo spominskih težav. Hitrost bi morala biti precej podobna. Le če je jezik tolmačen, bi znalo priti do počasnejšega izvajanja.

Mogoče se pa tudi motim.

StratOS ::

Da hudo ....
Ker objektni programski jeziki ( vsak boljši, nov ) uporabljajo sklice na določene objekte ( Gumbi, TextBox-i, ostale kontole) je hitrost izvajanja ( v mojem primeru programa pisanje v TextBox občutno počasnejša kot le premlevanje in izpljunek končnega rezultata ( pa še kontrola ima tu limit 64kB podatkov !!!), no tudi to se bi v modulu dalo narediti, lahko bi se poenostavila koda za pregled palindroma, nebi bilo potrebna dobena forma ali objekt, lahko bi pa rezultate zapisoval v fajl .. itd ...
Kot drugo je posredovanje pri uporabi strojne kode ...
VB programi tečejo ( se sklicujejo ) na VB runtime dll-je, ti kasneje uporabljajo strojno kodo ( Torej tu se hitrost VB programom zelllllooooooo upočasni ), sam naredi podoben program v C++ ali ASM-u pa boš videl kakšna razlika je !!, razlika med mojim ASM-om in mojim VB exe programom je za ta primer neopisljiva za več kot 10E5 (1000000 %) pri moji mašini !!!!

No pa imaš krivca za vse to, exe fajl je potem dobro še modificirati in pripraviti na kakšen način ga boš kompajliru in ostale parametre za tak program v VB ...

Exe je Tu Hitrost pa taka, a ne ?
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

Taras_Bulba ::

Vsota palindromov je 255010259 oz. še manj, ker ta rešitev vsebuje nekatere duplikate. Vsi, ki ste pisali programe takole:
for(i=1; i<1000; i++)
for(j=1; j<1000; j++)
.
.
.
imate veliko preveč duplikatov (Če jih ne izločate). Dobro si poglejte notranjo for zanko.

StratOS ::

Heres your next challenge, I think you will find this one quite fun.
Find the products of X times Y, where X and Y are integers which are greater than 0 and less than 1000.
From these products find the sum of any which are palindromes.

Motiš se. Odgovor je le 579751
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()

Taras_Bulba ::

To zgleda k moja stara telefonska. A ni največji palindrom 906609. Kako je potem vsota najdenih polinomov moja telefonska?

rc-car ::

Ja, dve for zanki resda vrneta podvojene palindrome, vendar kakor jaz sklepam iz navodila je to OK.

StratOS, daj zdej povej, ali je katera od danih rešitev tukaj pravilna in katera.

Tukaj je moja rešitev in pa program, ki izpiše na zaslon.
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

Zgodovina sprememb…

  • spremenil: rc-car ()

Taras_Bulba ::

Ja hotel sem povedat, da ce gre stevec notranje zanke od 1 do n dobiš mnogomnogo duplikatov.
1*2...1*999.
2*1...2*999
3*1 3*2 3*3 ... 3*999
In med temi duplikati so tudi palindromi.
Mogoce pa nimam prov. hm

rc-car ::

Seveda. In u bistvu se vsak palindrom v sistemu pojavi dvakrat - 1*2, 2*1, 51*301, 301*51,..

V skupni vsoti pa se vsak od teh plaindromov tudi upošteva - poglej mojo datoteko z rezultati.
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

StratOS ::

Dej poglejta kakšno je vprašanje, tvoj odgovor 509033471 je edini možni odgovor in ta je pravilen !
FINAL !!
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Taras_Bulba ::

Ja maš prov. Sem si pač drugače zastavil problem, zakaj bi dvakrat računal in upošteval isto stvar...

blank3_ ::

Dej StratOS napis v ASMju kodo. Kako to izgleda in v kermu delas? Dej objavi prosm...
Zelo sem zaposlen. Potreboval bi brezčasje... Vsaj za nekaj časa.

StratOS ::

Hm, zafrkavam se z nasmw-jem, z čim se pa trenutno ukvarjam preglej 1
2

Fake one's heh ...
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."

Zgodovina sprememb…

  • spremenila: StratOS ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[python] project euler problem

Oddelek: Programiranje
151205 (757) Spura
»

Python, prosim za pomoc pri programiranju (strani: 1 2 3 )

Oddelek: Programiranje
10413288 (9390) lenika
»

java mali problem (začetnik)

Oddelek: Programiranje
192232 (1975) ozbolt
»

[Tekmovanje] Narediti najkrajši exe alla "Pozdravljeni" v winxp sistemih

Oddelek: Programiranje
393753 (1898) BigWhale
»

Najhitrejši programski jezik? (strani: 1 2 )

Oddelek: Programiranje
757436 (5256) Senitel

Več podobnih tem