algoritmi.1szdravko,
Drug bi pozajmio knjigu od Goldberg-a o genetickim algoritmima. Vraca za 1 dan.
Mail me ili 489-3283 ili 456-530. Unapred havvala :).
algoritmi.2eburanj,
Ima li zainteresovanih za temu: prepoznavanje uzoraka i sl.
?
algoritmi.3pedjak,
> Ima li zainteresovanih za temu: prepoznavanje uzoraka i sl.
Naravno. Samo ti piši.
algoritmi.4max.headroom,
> Ima li zainteresovanih za temu: prepoznavanje uzoraka i sl.
Ima. Pitaj korisnika kriss da te ubaci u grupu "Neuronske Mreže", koja bi
morala da se bavi i tim problemom.
algoritmi.5szdravko,
Hi! Zanimaju me matematicke biblioteke, pogotovo u C-a (ako su dobre, a u
FORTRAN-u su, prevescu ih sam). Dosada sam koristio IMSL i delimicno LINPACK.
Pogotovo me zanimaju sledeci problemi:
1) matricne operacije u realnim i kompleksnim brojevima, ali stabilne (ne kao
Gaus-Jordan i sl.)
2) resavanje nelinearnih jednacina (sistema), ali u kompleksnom domenu!
algoritmi.6pyramid,
>> Hi! Zanimaju me matematicke biblioteke, pogotovo u C-a (ako su dobre, a
>> u FORTRAN-u su, prevescu ih sam). Dosada sam koristio IMSL i delimicno
>> LINPACK. Pogotovo me zanimaju sledeci problemi:
cephes-1.zip 155637
cephes-2.zip 155106
imas ih na FFS (2372-392,2372-393), dobre su, cini mi se da ima i source....
algoritmi.7bulaja,
│cephes-1.zip 155637
│cephes-2.zip 155106
│imas ih na FFS (2372-392,2372-393), dobre su, cini mi se da ima i source....
└───
I na Sezamu:
MSDOS - R:\C
----------------------
cephes-1 zip 154991 Cephes v2.2, razne matematičke C funkcije (source) #1
cephes-2 zip 154460 Cephes v2.2, razne matematičke C funkcije (source) #2
algoritmi.8zeljkoj,
Može li neko da opiše neki inteligentniji algoritam za pretraživanje
tekstualnog fajla od prostog sekvencijalnog čitanja? Treba recimo da pronadjem
sva mesta u tekstu koja sadrže 'bio' - biće ispisane rečenice u kojima se
pominje biologija, biografija, biohemija, itd. E sad, ako je tekst dužine
do megabajt-dva sekvencijalno čitanje još može da prodje, al' ako je duži,
postaje suviše sporo. :)
algoritmi.9dvesic,
>> Može li neko da opiše neki inteligentniji algoritam za
>> pretraživanje tekstualnog fajla od prostog sekvencijalnog
>> čitanja? Treba recimo da pronadjem
>> do megabajt-dva sekvencijalno čitanje još može da prodje, al'
>> ako je duži,
Pa imaš onaj inteligentan algoritam kojim se poredi svaki n-ti bajt
(ako je reč dugačka n bajtova) itd ... ako to želiš, daću ti detaljan
opis ...
Međutim, za ovako velike fajlove ne gine ti neko indeksiranje ...
algoritmi.10tehnikum,
Trebaju mi podatci o FFT-u (Fast Fourier Transform)
tj. sorsovi u Pascalu,Mashincu,Bejziku,a moze da
prodje i C,a ako nemate nista od ovog moze i DOC.
MMM Ako postoji neko na Sezamu ko ima bilo sta ovakvo
nek mi posalje na mail ,bicu mu veoma zahvalan.
(=)HTanx,
Byte Pointer.
algoritmi.11zeljkoj,
> Pa imaš onaj inteligentan algoritam kojim se poredi svaki n-ti
> bajt (ako je reč dugačka n bajtova) itd ... ako to želiš, daću
> ti detaljan opis ...
'Ajde, ako ti nije teško, baci opis ovde.
algoritmi.12atech,
> Pa imas onaj inteligentan algoritam kojim se poredi svaki n-ti
> bajt (ako je rec dugacka n bajtova) itd ... ako to zelis, dacu
> ti detaljan opis ...
Bajer-Murov? :) Jos davne 1986 (ako se ne varam) u racunarima
je bila serija tekstova koja je uporno pokusavala da razjasni ovaj
algoritam ali sto zbog stamparskih gresaka u listinzima a sto zbog
'nepredvidjenih' okolnosti posao se oduzio. ;)
Iskreno vise se i ne secam da li neko uspeo u to vreme da uspesno
zaokruzi temu...:)
algoritmi.13saxon,
> Trebaju mi podatci o FFT-u (Fast Fourier Transform)
> tj. sorsovi u Pascalu,Mashincu,Bejziku,a moze da
> prodje i C,a ako nemate nista od ovog moze i DOC.
Na zalost, nemam nista na disku ali imam u knjizi. Skoro sve sto ti
treba mozes da pronadjes u "Numerical Recipes in C" (Press, Flannery,
Teukolsky, Vetterling). Ima dosta teorije a bogami i programa koji nesto
rade (licno se time ne bavim pa nisam detaljnije iscitavao)
algoritmi.14.sima,
║║ MMM Ako postoji neko na Sezamu ko ima bilo sta ovakvo
║║ nek mi posalje na mail ,bicu mu veoma zahvalan.
A što na mail? Šalji ga ovamo.
algoritmi.15zormi,
* Trebaju mi podatci o FFT-u (Fast Fourier Transform)
* tj. sorsovi u Pascalu,Mashincu,Bejziku...
Evo za prvu pomoć mog programa iz studentskih dana, od pre 5-6 godina :(
kada smo učili. Valjda je ispravan.
fft.calgoritmi.16mdrazic,
> MMM Ako postoji neko na Sezamu ko ima bilo sta ovakvo
> nek mi posalje na mail ,bicu mu veoma zahvalan.
FFTPACK na FORTRANU ?
Milan
algoritmi.17visnja,
> Bajer-Murov? :) Jos davne 1986 (ako se ne varam) u racunarima
> je bila serija tekstova koja je uporno pokusavala da razjasni
> ovaj algoritam ali sto zbog stamparskih gresaka u listinzima a
> sto zbog 'nepredvidjenih' okolnosti posao se oduzio. ;)
> Iskreno vise se i ne secam da li neko uspeo u to vreme da
> uspesno zaokruzi temu...:)
Hajde ovako: posto imam sve brojeve racunara, fotokopiracu sve o temi, posto
je na udaru mog interesovanja. Samo ovo ce da poootraje, jer sam u
finansijskoj frci pa moram svasta da radim da bih preziveo. Kada od fotokopija
napravim lepu skriptu javicu, pa kome treba... samo mi dajte vremena.
Pozdrav, Visnja.
algoritmi.19ratman,
Interesuju me algoritmi za fitovanje (regresiju) proizvoljno zadate
funkcije, tj. da algoritam nije zavisan od same funkcije (da li je
polinomska, polieksponencijalna, itd.) Bilo bi mi od pomoci sve u vezi
sa tim- algoritmi, source programi (najbolje BASIC, QBASIC, Pascal, ili
neki pseudokod, ali razumecu i drugo); onda, refc. na poruke u conf.,
ako se o tome ranije pisalo; tekstovi/clanci, odn. refc. (mislim da se u
Byte-u pisalo o tome, u nekim sasvim prvim brojevima..?). Sto
jednostavniji algoritmi to bolje, po mogucstvu bez mnogo 'teske'
matematike.
Pozdrav,
Dejan.
algoritmi.20szdravko,
Za ratman-a. Preporucujem ti dve stvari:
a) Za par dana imacu knjigu Numerical Recipes in C, tu ima nesto;
b) FFITPACK u FORTRANU-u, valjda ga imam;
c) Najbolje: program Jandel TableCurve. Radi pod Windows-ima, fituje oko 4-5000
predefinisanih krivih + user defined funkcije. Imam instalaciju! Ovu
konferenciju ne citam tako cesto, pa mi se javi na MAIL, ako zuris. Ako ne,
javi se ovde, pogotovo ako imas jos nesto sto bi zanimalo i druge. Pz, :).
algoritmi.21szdravko,
PS> U stvari su tri stvari!
algoritmi.22severian,
Zamolio bih za listinge generatora pseudoslučajnih brojeva iz nekog
(recimo zadatog) intervala koji su sposobni da daju i granice tog intervala.
Naročito bih bio zadovoljan sa Fibonačijevim i Meklaren-Maršalovim
generatorom. Naravno, može i bilo koji drugi u domaćoj radinosti. Source bih
najviše voleo na Pascalu (jer mi i treba za prg koji pišem na istom) ali
može i Fortran i C i sve ostalo... U nedostatku source-a pomogao bi i
algoritam (imam neki falični algoritam za Fibonačijev ali nikako da ga
nateram da da i gornju granicu intervala:(( )
Unapred hvala!
algoritmi.23szdravko,
Ja imam knjigu "Numeric recipes in C" (za FORTRAN postoji ista knjiga, ali je
ja nemam). U njoj postoje i rutine za slucajne brojeve, sa teorijskim
objasnjenjima. Mozes da kopiras od mene, pa da prekucas (řÚnisu to neki veliki
listinzi). Pz, :).
■˛
algoritmi.24atech,
> Zamolio bih za listinge generatora pseudoslucajnih brojeva iz
> nekog (recimo zadatog) intervala koji su sposobni da daju i
> granice tog intervala. Narocito bih bio zadovoljan sa
> Fibonacijevim i Meklaren-Marsalovim generatorom. Naravno, moze
> i bilo koji drugi u domacoj radinosti. Source bih najvise voleo
> na Pascalu (jer mi i treba za prg koji pisem na istom) ali moze
> i Fortran i C i sve ostalo... U nedostatku source-a pomogao bi
> i algoritam (imam neki falicni algoritam za Fibonacijev ali
> nikako da ga nateram da da i gornju granicu intervala:(( )
> Unapred hvala!
Imas u Snippets-ima (0494) varijaciju prvog algoritma koja po
autoru ima veliki period i zadovoljava sve kriterijume jednog
PRNG-a. Program je napisan u c-u. Inace, vecina algoritama na koje sam
nailazio po razlicitim bibliotekama koristi algoritam linearne
kongruencije. I sam sam se bavio ovim problemima jer radim softver
za zastitu. Uzgred, na kakvom programu radis?
poz, Blagoje.
algoritmi.25szeman,
RE: Šah i algoritmi:
====================
Davno je neko ovde tražio podatke o principima šahovskog programiranja i
od mene dobio pointer na časopis Moj Mikro. Elem, evo nešto malo konkretnije:
broj iz marta '89 - četvrti nastavak serije tekstova Djordja Vidanovića uz
kompletan sors u Basic-u (akademska verzija nekog tipa sa nemačkog
univerziteta). Nadam se da će biti od koristi...
Pozdrav, Saša
algoritmi.26severian,
> Imas u Snippets-ima (0494) varijaciju prvog algoritma koja po
> autoru ima veliki period i zadovoljava sve kriterijume jednog
> PRNG-a. Program je napisan u c-u. Inace, vecina algoritama na koje sam
> nailazio po razlicitim bibliotekama kori
> sti algoritam linearne
> kongruencije. I sam sam se bavio ovim problemima jer radim softver
Uz sav rizik da ispadnem neupućen, ali šta su Snippets-i (i još
važnije kako da dođem do njih;)? Usput, što se tiče linearne kongruencije,
problem sa njom je što u formuli *uvek* figuriše neki moduo, pa logično
ne mogu da dobijem gornju granicu intervala (ili ako posmatramo generator
normalizovanih vrednosti nikako ne može da vrati tačno 1). E sad, iz
prirode problema za koji mi treba generator (upoređivanje različitih
modela za izr avg seek time-a u f-ji broja pređenih cyl) generator
mora da vraća i gornju granicu intervala. Znam da neke varijante Fibonačija
i Meklaren-Maršal ovo mogu, ali sam listinge negde zagubio:(( Hebiga,
Marfi na kub...
algoritmi.27djelovic,
> Uz sav rizik da ispadnem neupućen, ali šta su Snippets-i
r:\c\snip9404.zip
algoritmi.28atech,
> Uz sav rizik da ispadnem neupucen, ali sta su Snippets-i (i jos
> vaznije kako da dodem do njih;)?
Arhiva r:\c\snip9404.zip je prepuna korisnih programa datih
u izvornom kodu (vecinom c mada ima i nesto asm programa). U ovoj
arhivi nalaze se i dva algoritma za generisanje slucajnih brojeva.
poz, Blagoje.
algoritmi.29severian,
> Arhiva r:\c\snip9404.zip je prepuna korisnih programa datih
> u izvornom kodu (vecinom c mada ima i nesto asm programa). U ovoj
> arhivi nalaze se i dva algoritma za generisanje slucajnih brojeva.
Hvala na pointeru (i djelovicu). Skinuo sam i pogledao. Ima tri
generatora. Jedan kongruentni, jedan Fibonačijev (neka verzija) i
jedan koji prvi put vidim;). Zadnja dva mogu da budu ono što mi
treba, pa idem da proučim.. Hvala još jednom.
algoritmi.30mdimitrijevic,
Interesuje me kako da izracunam normalu (vektor) na ravan (koja je
definisana sa tri tacke) u svakoj od tacaka kojima je definisana ta ravan.
Na primer imam trougao definisan sa tri tacke A,B,C i imam njihove koordinate
u prostoru A(x,y,z),B(x,y,z),C(x,y,z) one definisu jednu ravan. Pitanje je
kako izracunati normalu (vektor definisan sa x,y,z) na tu ravan u svakoj
od tacaka A,B i C ?
C
+
│
│
│
│
└──────────── +
A B
Pitanje je vezano za analiticku geometriju (valjda :). Moje znanje ove
oblasti je samo u granicama u kojima je obradjivano u srednjoj ekonomskoj
skoli.
Pozdrav,
Marjan
algoritmi.31maksa,
>> u prostoru A(x,y,z),B(x,y,z),C(x,y,z) one definisu jednu
>> ravan. Pitanje je kako izracunati normalu (vektor definisan sa
>> x,y,z) na tu ravan u svakoj od tacaka A,B i C ?
Šta tačno misliš pod "u svakoj od tačaka"?
Za date tačke:
A (x1, y1, z1)
B (x2 y2, z2)
C (x3 y3, z3)
Normala, odn. vektor N normalan na ravan tako dobijenog trougla se
dobija kao vektorski proizvod vektora (na pr.) AB i AC. Što će reći:
->
AB = (x2-x1, y2-y1, z2-z1)
->
AC = (x3-x1, y3-y1, z3-z1)
->
N (Nx, Ny, Nz) ; vektor normale na ravan ABC
│ i j k │
-> -> -> │ │
N = AB x AC = │ (x2-x1) (y2-y1) (z2-z1) │
│ │
│ (x3-x1) (y3-y1) (z3-z1) │
oliti:
Nx = (y2-y1) * (z3-z1) - (z2-z1) * (y3-y1)
Ny = - ((x2-x1) * (z3-z1) - (z2-z1) * (x3-x1))
Nz = (x2-x1) * (y3-y1) - (x3-x1)*(y2-y1)
(Ako ti ikad zatreba površina tog trougla, dobićeš je kao polovinu
intenziteta ovog (N) vektora).
algoritmi.32saxon,
> Interesuje me kako da izracunam normalu (vektor) na ravan (koja je
> definisana sa tri tacke) u svakoj od tacaka kojima je definisana ta ravan.
A(ax,ay,az), B(bx,by,bz), C(cx, cy, cz):
Zatim definiši vektore p(px, py, pz) i q(qx, qy, qz) gde je:
px = bx - ax, py = by - ay, pz = bz - az,
qx = cx - ax, qy = cy - ay, qz = cz - az.
Vektor normale N(Nx, Ny, Nz) definisan je kao N = p x q:
Nx = py * qz - pz * qy,
Ny = pz * qx - px * qz,
Nz = px * qy - py * qx.
Ako ti treba vektor jediničnog intenziteta n(nx, nz, nz), moraš da
normalizuješ vektor N:
/────────────────────────────
N = \/ Nx * Nx + Ny * Ny + Nz * Nz,
nx = Nx / N, ny = Ny / N, nz = Nz / N.
Tačke A, B i C moraju biti nekolinearne (inače će vektori p i q biti
paralelni a vektor N biti jednak nuli.
Pogodio si, reč je o (elementarnoj) analitičkoj geometriji.
algoritmi.34mdimitrijevic,
Hvala na odgovorima ali da li je moguce da izracunam normalu na poligon u
tacki A recimo. Znaci da normala na poligon "krece" iz tacke A na "gore". Ne
treba mi opsta normala za ceo trougao vec normala na trougao koja polazi iz
jedne od tacaka koje ga definisu u prostoru. Jer na osnovu onoga iznetog
dobijam normalu na ceo trougao (ravan).
Pozdrav,
Marjan
P.S. Nadam se da sam tacno postavio pitanje.
algoritmi.35kriss,
˙˙ Interesuje me kako da izracunam normalu (vektor) na ravan
˙˙ (koja je definisana sa tri tacke) u svakoj od tacaka kojima je
˙˙ definisana ta ravan.
Jedan vektor ti je AB. Koordinate dobijaš kao Xb-Xa, Yb-Ya, Zb-Za, i
obeležiš ih sa X1, Y1, Z1. Ovo znači da ti je vektor AB usmeren od A
ka B. Zatim definišeš i vektor AC, isti postupak sa koordinatama
(Xc-Xa=X2...), isto znači da je AC usmeren od A ka C. Obrati pažnju na
oduzimanje koordinata, uvek se od tačke B ili C oduzima koordinata
tačke A. Pošto si dobio dva lepa vektora, kažeš da oni leže u ravni za
koju računaš normalu.
Zatim postavi sledeću determinantu:
│ -> -> ->│
│ i j k │
│ │
│ X1 Y1 Z1│ = (Xr,Yr,Zr)
│ │
│ X2 Y2 Z2│
-> -> ->
i grupiši sve uz i, j i k, i time si dobio koordinate traženog
vektora.
algoritmi.36maksa,
>> tacki A recimo. Znaci da normala na poligon "krece" iz tacke A
>> na "gore". Ne treba mi opsta normala za ceo trougao vec
>> normala na trougao koja polazi iz jedne od tacaka koje ga
>> definisu u prostoru. Jer na osnovu onoga iznetog dobijam
>> normalu na ceo trougao (ravan).
>>
>> P.S. Nadam se da sam tacno postavio pitanje.
Malo nejasno. Da se ne tušimo sa suvom terminologijom - normala na
taj trougao u svakoj tački ima isti pravac. Ako ti treba jednačina
prave koja prolazi kroz tačku A, a normalna je na trougao, nju dobijaš
kao:
X-Xa Y-Ya Z-Za
---- = ---- = ----
Nx Ny Nz
gde su X, Y i Z slobodni članovi, odn. promenjive, a Nx, Ny i Nz
komponente onako dobijenog vektora normale na trougao, a Xa, Ya i Za
koordinate tačke A.
Da kažeš ti nama lepo šta bi tačno da izvedeš, pa da vidimo? :)
algoritmi.37mdimitrijevic,
Mislim da cu uspeti sada da resim problem. Hvala svima na odgovorima.
Pozdrav,
Marjan
P.S. Nazalost u Srednjoj Ekonomskoj Skoli se ne uci analiticka geometrija skoro
uopste. Matrice sam naucio da radim kod kuce jer ih srednjoj nismo ni pomenuli
:(((((((.
algoritmi.38spantic,
> P.S. Nazalost u Srednjoj Ekonomskoj Skoli se ne uci analiticka geometrija
> skoro uopste. Matrice sam naucio da radim kod kuce jer ih srednjoj nismo ni
Matrice vas ne uče u ekonomskoj školi? Lepo bogami.
algoritmi.39mdimitrijevic,
Verovao ili ne sve najveci deo onoga sto znam iz matematike sam naucio sam
jer se nista nije ucilo u srednjoj ekonomskoj :(((. Kao i u svim skolama veliki
deo onoga sto se uci nije primeren nicemu.
Pozdrav,
Marjan
algoritmi.40deimos,
Pokusavam poslednjih par dana da razvijem neki algoritam koji ce da radi
popunjavanje odredjene povrsi odredjenim argumentom. Funkcija bi trebalo da
radi ono sto radi i FLOODFILL iz brorlandovog c-a. Da se razumemo: povrsina je
zatvorena kriva neodredjenog oblika i nije predstavljena nikakvom funkciom.
Trebalo bi kada se zada na ekranu koordinata tacke unutar takve krive da se
povrsina popuni do odredjene granice. help!
Vlada.
algoritmi.41vovi,
Cini mi se da je u ovoj temi bila rasprava o generatorima slucajnih
brojeva.Kako me ta tema zanima, molim da mi date neke smernice vezane
za ovu problematiku (ako je o ovome vec raspavljano, recite mi gde
i kada da bih mogao da se o tome raspitam. takodje su dobrodosle
i sve smernice na literaturu koja se ovom problematikom bavi.)
Unapred zahvalan!
Vladimir
algoritmi.42nemko,
Kucam ON-LINE, so:
pitanje je vilo algoritam, za floodfil ili slicnu funkciju.
Jedna od mogucih metoda je sledeca:
1. definises uslov da li odredjena tecak predstavlja ivicu oblasti.
H2. Krenes od date tacke i crtas levo i desno liniju sve dok "treba"
3. krenes da ispitujes tacke iznad (kasnije ispod) linije i ako bar neku
treba iscrtati iscrtavas je (tj. iscartavas liniju iznad i ispod prethodne)
4. Za nove linije postavljas korak 3 sve dok sve tacke iznad i ispod linija ne
predstavljaju granice oblasti
Ovo je rekurzivni algoritam. Moze se realizovati i simuliranjem steka pri cemu
se beleze pozicije tacaka koje su preskcene u "obradi" u neki niz.
Uz dobru optimizaciju (ili pisanje u asm-u) ovo moze biti veoma brzo, tacnije
receno "munjevito". ;)
algoritmi.43jablan,
Evo jedan zadačić za razmišljanje...
Napisati funkciju koja proverava ispravnost unetog rimskog broja.
Znači, za nešto poput 'IXI' ili 'IXIX' treba da vrati false, a za
'XVI' treba da vrati true.
algoritmi.44eburanj,
Da li neko moze da mi objasni princip programiranja logickih űigara
(famozni iksoks iz RACUNAR-a). Na primer kako ˇŚkako da posle izracunatih svih
mogucih kombinacija za X poteza unap÷║red odredim koja je najbolja za mene?
algoritmi.45eburanj,
Mozda nekoga interesuje morfing pa evo jedne ¸│formule:
s(x)=a(x)+frame/fram * (b(x)-a(x))
gde je frame = 1 DO frames
isto vazi naravno za drugu (ostale) koordinate.
algoritmi.46eburanj,
Ima li neko objasnjenje bezijerovih krivih?
algoritmi.47nlazic,
Teoriju će verovatno neko bolje objasniti od mene (beše u nekim
matorim Računarima, između ostalog). Ja šaljem parče programa koje
iscrtava
Bezierovu krivu. Nije najbolje, nije ni najbrže, ali je
najjednostavnije :) Ako treba nešto više (BSpline i sl.) reci.
{TP 6}
uses graph;
function pow(x : real; y : word) : real;
var
nt : word;
result : real;
begin
result := 1;
for nt := 1 to y do
result := result * x;
pow := result;
end;
procedure DrawBezierCurve(px1,py1,px2,py2,px3,py3,px4,py4,count :
integer);
{
px1,py1,...,px4,py4 - koordinate kontrolnih tačaka; count - broj
medjukoraka
}
procedure Bezier(t : real; var x, y : integer);
begin
x := round(pow(1-t,3)*px1+3*t*pow(1-t,2)*px2+
3*t*t*(1-t)*px3+pow(t,3)*px4);
y := round(pow(1-t,3)*py1+3*t*pow(1-t,2)*py2+
3*t*t*(1-t)*py3+pow(t,3)*py4);
end;
var
resolution,t : real;
xc, yc, i : integer;
begin
if count = 0 then exit;
resolution:=1/count;
{ Iscrtaj kontrolne tačke }
putpixel (px1,py1,15); putpixel (px2,py2,15);
putpixel (px3,py3,15); putpixel (px4,py4,15);
{ Iscrtaj Beziera }
Moveto(px1,py1);
t := 0;
while t < 1 do begin
Bezier(t, xc, yc);
lineto(xc, yc);
t := t + resolution;
end;
LineTo(px4,py4);
end;
var a,b:integer;
c:char;
begin
a:=Detect;
initgraph (a,b,'c:\tp6\bgi');
randomize;
repeat
clearviewport;
DrawBezierCurve(Random(640),Random (400),Random(640),Random
(400),
Random(640),Random (400),Random(640),Random
(400),100);
readln (c);
until c='q';
closegraph;
end.
P.S. Sorry zbog dužine poruke, nisam uspeo da okačim fajl.
algoritmi.48marshall,
Vazno! Da li neko ima bilo kakvu literaturu (tj. docove) o
programiranju muzickih kartica, tj. SB-a i GUS-a... Nije bitno sta je
samo mi treba u sto vecim kolicinama. Samo kacite... :)
Unapred hvala
P.S.: Sorry ako sam promasio temu, ali ova mi se cini najbliza
(premda naziv ne odgovara)
algoritmi.49alien,
[] Da li neko moze da mi objasni princip programiranja logickih űigara
[] (famozni iksoks iz RACUNAR-a). Na primer kako ˇŚkako da posle
[] izracunatih svih mogucih kombinacija za X poteza unap÷║red odredim koja
[] je najbolja za mene?
Ona koja vodi ka pobedi :). Generalno, ako su ti poznate sve
moguće kombinacije, onda je najbolja ona koja najbrže vodi sigurnoj
pobedi, a ako nijedna ne vodi sigurnoj pobedi, onda je najbolja ona kod
koje ne možeš izgubiti itd. Naravno, pri svemu tome isti kriterijum
primenjuj i kod procene protivnikovog odlučivanja. Uzgred, ovde se radi
o strategiji, a ne o 'logičkoj' igri. Logičke igre se bave rešavanjem
'problema', a kod strategija postoji bar jedan 'protivnik' tj. postoje
suprotstavljene strane.
Osnovno pravilo u strategijama je: uvek očekuj da će protivnik
odigrati najbolji potez za sebe (naravno, i protivnik očekuje to za
tebe).
Primer koji te zanima je je prilično jednostavan jer se potezi
odigravaju sekvencijalno, a omogućava izračunavanje svih mogućih
kombinacija (X nije veće od 9 ;)), za razliku od npr. šaha, gde to još
uvek nije moguće u realnom vremenu, ali... Očigledno je da su ljudi
razvili jako dobre sisteme evaluacije nekonačne pozicije :). Što se tiče
iksoksa, tu je rešenje jednostavno: kreiraš stablo gde je koren početna
pozicija i praviš grane do kraja, odsecajući one grane koje su potezi
koji vode igrača u neodbranjiv poraz, pa onda vidi šta ti je ostalo ;).
Ako pak nemaš mogućnost da analiziraš sve moguće pozicije do kraja, onda
ćeš zaista ozbiljno morati da se pozabaviš i samom igrom i matematikom -
još uvek nije napisano dovoljno knjiga o tome.
Inače, znatno teže odlučivanje je u igrama u kojima se potezi
odigravaju istovremeno (ne znajući potez protivnika), npr: Diplomatija,
par-nepar ;) ili simpatični model matrične igre koji možeš naći u knjizi
'Diskretna matematika' od Dragoša Cvetkovića..., poglavlje 'Teorija
igara' (nekoliko strana). Tu je problem 'šta ako on, znajući da ja znam
šta je najbolji njegov potez, zna i da ću odigrati najbolji odgovor na
to, pa odigra u stvari odgovor na moj odgovor, pa bi onda bilo najbolje
da ja u stvari odgovorim na njegov odgovor na moj odgovor na njegov
najbolji potez' ;) algebarski razložen i sveden na verovatnoće. Rešenje
je u tome da najbolje poteze vučeš sa određenom pripadajućom
verovatnoćom, po randomu. Doduše, to je samo najjednostavniji primer,
reda iksoksa.
algoritmi.50pedjak,
> Vazno! Da li neko ima bilo kakvu literaturu (tj. docove) o
> programiranju muzickih kartica, tj. SB-a i GUS-a... Nije bitno sta
> je samo mi treba u sto vecim kolicinama. Samo kacite... :)
Imaš toga dosta u C i PASCAL diru, ovde... Preporučio bih ti
SoundBlaster Freedom Project (sbf3.zip)
algoritmi.51zdiv,
rz
B00000000000000
WATCOM C/C++ verzija 10.5 ?
Visual programer nece da radi.
Cuo sam da WATCOM ima neki patch.
Da li neko zna nesto o ovome , ili mozda ima ovaj patch!?
Da li je nko uspeo da pokrene Visual programer ?
algoritmi.52mmitrovic,
Ima li neko algoritam za LZW (ili bar LZ) kompresiju. Potreban mi je
prilicno hitno. Help.
algoritmi.53vlador,
Evo mene posle duzeg vremena. :)
Ako koristim MessageDlg funkciju, kao jedan od parametara joj
dajem buttone koje zelim da vidim u dialogu. Da li mogu na
relativno jednostavan nacin da promenim tekst u buttonima,
tako da, recimo, umesto "Yes" pise "Da"?
"Relativno jednostavno" znaci "elegantno". :)
algoritmi.54bosko,
_> Ima li neko algoritam za LZW (ili bar LZ) kompresiju. Potreban
Imaš to u Računarima 59/62 i 60/43, a i u ovoj datoteci.
r059lzw.zipalgoritmi.55nenad,
> Cuo sam da WATCOM ima neki patch.
Watcom uvek ima neki patch. ;) Mesec-dva dana nakon izlaska
svakog Watcom-a prostor koji zauzimaju patch-evi se obično već
popne na 10% prostora koji zauzima instalacija. ;)
algoritmi.56biber,
>> Mozda nekoga interesuje morfing pa evo jedne ¸│formule:
Moze li objesnjenje?
algoritmi.57mc.kuzma,
Moze li neko da mi posalje algoritam
koji reaguje samo na odredjene frekvencije zvuka?
Recimo program koji reaguje samo na niske tonove ili nesto slicno.
algoritmi.58tehnikum,
Imam dva mala problema za koje bih mogao da nadjem resenje,ali sam
odlucio da vidim dali neko vec ima neko efikasnije.
Prvi problem je kako rasiriti bit mapiranu sliku odredjen sirine i
dubine izmedju 4 koordinate(temena nekog cetvorougla nejednakih
stranica)
Drugi problem je kako isenciti trougao ako imam osvetljenosti
njegovih temena.
To bi bilo to,ako neko ima resenje bio bih zahvalan ako bi ga isti
poslao.(mislim na resenje)
Byte Pointer.
algoritmi.59galimpic,
**********************************
** TAKMIČENJE U PROGRAMIRANJU **
**********************************
Vreme: Poslednja nedelja u mesecu
(1. kolo: Nedelja, 28. april 1996. u 12.00 časova)
Mesto: SezamNet, konferencija PCPROG, tema ALGORITMI
Nagrada: Jednomesečna pretplata na SezamNet
Propozicije:
- Poruka koja bude ostavljena sadržaće preciznu postavku zadatka
- Takmičari moraju da ostavljaju rešenja u obliku izvršnih DOS fajlova
- Fajl se mora prikačiti uz poruku koja je odgovor na postavku zadatka
- Svaki takmičar ima pravo da učestvuje sa neograničenim brojem rešenja
- Ispravnost rešenja se procenjuje isključivo na osnovu tajnih i unapred
utvrđenih grupa ulaznih podataka.
- Pobednik takmičenja je onaj koji je prvi poslao ispravno rešenje
zadatka na gore opisan način
- Za vreme slanja važi se vreme ispisano u zaglavlju poruke rešenja (duže
odlaganje kačenja datoteke posle ostavljanja poruke povlači
diskvalifikaciju)
- Rezultati će biti objavljeni čim se utvrdi pobednik, u obliku odgovora
na poruku sa ispravnim rešenjem
- U slučaju nemogućnosti poštovanja termina za ostavljanje poruke sa
zadatkom takmičenje se pomera za 24 časa
- U slučaju nemogučnosti poštovanja rezervnog termina, umesto zadatka se
ostavlja poruka sa daljim uputstvima
- Pravo učestvovanja imaju svi članovi SezamNet-a osim onih koji su iz
bilo kog razloga unapred upoznati sa zadatkom i/ili test grupama i onih
koji rešenje ostave pristupom sa nekog od lokalnih nodova
- Rukovodilac i sudija takmičenja je galimpic
algoritmi.60vdjole,
Slični problemi se pojavljuju pri generisanjima mreža konačnih elemenata. Ako
se dobro sećam davnih dana kada sam radio diplomski to nazivaju "transfinite
interpolation" a algoritme je razvio izvesni Coons. Interpolacija u trouglu
se tu isto svodi na interpolaciju (osvetljenosti) u pravougaoniku koji je
deformisan da mu se dva temena spoje. Stvarno se ne sećam najbolje ovako na
brzaka, ali pogledaću na poslu, mislim da imam neke rutine koje obavljaju
takav posao (biće da su u FORTRANu ali valjda nije bitno). Javiću se.
algoritmi.61vdjole,
> transfinitna interpolacija...
Nazalost nema nista od rutina. Za slucaj preslikavanja pravougaonika u oblast
oblika cetvorougaonika to bi, u najjednostavnijem slučaju trebalo da se svodi
na običnu linearnu interpolaciju funkcije dve promenljive. Na primer, nešto
slično ovome: ako su x,y koordinate tacke u prevougaonoj slici dimenzija
a x b, a Xa,Ya; Xb,Yb, Xc,Yc, Cd,Yd koordinate temena preslikanog četvorougla,
preslikane koordinate tacke xt,yt bi se mogle ovako odrediti:
f1 = (1-x/a)*(1-y/b)
f2 = (x/a)*(1-y/b)
f3 = (x/a)*(y/b)
f4 = (1-x/a)*(y/b)
xt = f1*Xa + f2*Xb + f3*Xc + f4*Xd
yt = f1*Ya + f2*Yb + f3*Yc + f4*Yd
algoritmi.62galimpic,
*******************************************
TAKMIČENJE U PROGRAMIRANJU - Zadatak broj 1
*******************************************
Napraviti program koji igra iks-oks ("ruski šah") sledećih karakteristika:
1. Naizmenično započinju partije kompjuter i čovek (počevši od čoveka)
2. Potezi čoveka se unose, a kompjutera izdavaju u obliku broja 1-9, koji
predstavljaju sledeća polja:
123
456
789
3. Posle završene partije, kompjuter proglašava svoju pobedu ili nerešen
rezultat i započinje se sledeća (videti pravilo 1)
4. Program završava sa radom kada čovek unese 0 kao polje za potez
5. Kompjuter ne sme da gubi i mora da pobedi svaki put kada za to
postoji način (posle greške čoveka)
Ovo su minimalni zahtevi, dok se po želji mogu dodati i drugi elementi
(npr. crtež table, slučajni izbor prvog poteza), ako se ne kose sa
navednih 5 pravila. Dodaci, međutim, ne utiču na ocenu ispravnosti programa.
Rešenja šaljite u obliku izvršnih DOS fajlova prikačenih uz poruku koja
je odgovor na ovu poruku. Za detaljnije propozicije pogledajte poruku 1.59.
algoritmi.63embe,
IKS-OKS by EMBE
mbiksoks.zipalgoritmi.64embe,
Opet EMBE. Malo sam ga modifikovao, pa sam mu i ime promenio.
Sada se zove NEPOBEDIVI. I onaj prethodni je dobro radio, ali
je postojala caka da covek pobedi.
nepobedi.zipalgoritmi.65embe,
Opet EMBE. Ovo je finalna verzija.
final.zipalgoritmi.66vinkom,
Evo da i mog resenja, valjda ce proci testove.
Pozdrav VinkoM.
taksez.exealgoritmi.67embe,
Ko vam je kriv sto ne citam propozicije :)
xoks.zipalgoritmi.68beca,
Evo jos jedan za rezervu
xo.exealgoritmi.69embe,
Jos jedan od mene.
contest.zipalgoritmi.70vinkom,
Valjda ce onaj prvi poloziti, a za svaki slucaj evo ga opet uz sitne
izmene :) Pozdrav VinkoM
taksez1.exealgoritmi.71vinkom,
Program je baziran na heuristici, pa ga dogradjujem. Nadam se da je ovo
poslednji put. :)
taksez2.exealgoritmi.72galimpic,
********************************************************
JOŠ UVEK NEMA POBEDNIKA - TAKMIČENJE JE I DALJE OTVORENO
********************************************************
Prve tri verzije korisnika embe, kao i jedina verzija korisnika beca
ne poštuju pravilo 3 (završavaju se odmah posle prve partije), četvrta
verzija embe (xoks.exe) ima bug u prepoznavanju remija.
poslednja verzija embe-a (contest.exe) i sve tri verzije vinkom-a
greše pri igranju (ne igraju najbolje poteze kada mogu da pobede,
a neke verzije i gube). O detaljima ćemo kasnije ako bude pritužbi,
kako ne bih pomagao.
algoritmi.73deimos,
Evo i mog doprinosa za takmicenje !
,dEiMoS.
deimosxo.arjalgoritmi.74beca,
Pa da probamo ponovo
xo2.exealgoritmi.75embe,
Evo mene ponovo !
latest.zipalgoritmi.76embe,
I jos ....
latest2.zipalgoritmi.78vinkom,
Mislim da ova verzija ne oprasta coveku.
VinkoM
taksez3.exealgoritmi.79galimpic,
**************************
STOP! DOBILI SMO POBEDNIKA
**************************
Korisnik embe je iz šestog pokušaja osvojio mesec dana pretplate.
Iks-oks se pokazao kao tvrd orah - svi misle da lako mogu da naprave
program koji dobro igra ovu (stupidnu) igru, ali...
algoritmi.80embe,
REKLAMACIJA!!!!
Moram da intervenisem ! Ispravka je da sam imao sedam pokusaja.
Ovaj sesti program koji je proglasen za pobednika pod imenom LATEST
MOZE DA IZGUBI OD COVEKA. Zato sam i poslao sedmi program pod imenom
LATEST2 kod koga je to eliminisano !
Program koji je proglasen za pobednika moze da izgubi na sledeci
nacin:
covek treba da igra 2 , 6 , 3 , 9 ovim redom (kada covek pocinje)
... i pobedio je.
Gresku sam odmah uocio pa sam zato i poslao novu verziju.
Ovo pisem zato da se ne bi napravila zestoka rasprava kada se
ustanovi neispravnost programa.
Molim moderatora da iskontrolise program LATEST2 (s obzirom da je on
stigao odmah iza prgrama pobednika).
Pozdrav embe.
algoritmi.81galimpic,
Dobro, de. U svakom slucaju, embe je pobednik.
algoritmi.82imangovski,
Interesuje me u kom je programskom jeziku pisan program
pobednika(embe-a).
algoritmi.83galimpic,
> Interesuje me u kom je programskom jeziku pisan program
> pobednika(embe-a).
Ovo se da izvući iz EXE fajla:
Borland C++ - Copyright 1994 Borland Intl.
Možda embe hoće da pošalje source? :)
algoritmi.84imangovski,
Zadatak uopste nije bio tezak,steta sto nisam bio kod kuce u to
vreme;(
algoritmi.85embe,
>>> Interesuje me u kom je programskom jeziku pisan program
>>> pobednika(embe-a).
Pisan je u C++. Zato je i EXE file toliko dugacak :))))). Salim se.
Toliko je dugacak zato sto sasvim nepotrebno (za ovaj zadatak) u
sebi sadrzi interfejs klase za unos stringa, intidzera i reala. S
obzirom da je bila bitna brzina, spremio sam se za svaki slucaj. Posle
nisam hteo da pisem neke druge funkcije za unos, koje ne bi
ukljucivale toliko mnogo razlicitih header-a i funkcija. Videvsi
programe ostalih kandidata, koji su imali "asemblersku" duzinu od
4-9kb bilo me je malo blam, ali .... Inace ceo kod je dugacak oko 200
linija.
algoritmi.86embe,
>>>> Mozda embe hoce da posalje source? :)
Poslacu source za tri cetiri dana, kada ga jos malo nasminkam, i
doteram. Hteo sam i za sam konkurs da napravim da kompjuter igra
proizvoljan prvi potez, ali sam se u trenutku zapetljao, pa odustao.
Cim ovo sredim, poslacu source, obecavam.
Sto se tice takmicenja, ocekivao sam malo vece interesovanje
populacije dobrih programera za koju verujem da je jako brojna. Bilo
je zanimljivo trkati se sa vremenom, ali jos mi je vece zadovoljstvo
predstavljalo testiranje "konkurentskih" programa. Sve u svemu jedva
cekam sledece takmicenje (ala sam se zapalio) i pitam se zasto nije
barem svake druge nedelje (jos vise sam se zapalio).
Pozdrav, EMBE
algoritmi.87galimpic,
> Sto se tice takmicenja, ocekivao sam malo vece interesovanje
> populacije dobrih programera za koju verujem da je jako brojna.
Mozda je mala motivacija (mesec dana pretplate)? Probaću da izdejstvujem
bolje nagrade. Ako se onda bude javljalo više ljudi, može i da bude češće,
što da ne.
algoritmi.88galimpic,
> Zadatak uopste nije bio tezak,steta sto nisam bio kod kuce u to
> vreme;(
Neki me ubeđuju da je bolje da se promeni termin. Ako ima još istomišljenika,
molim da se jave (sa argumentima).
algoritmi.89embe,
>>>> Mozda je mala motivacija (mesec dana pretplate)? Probacu da
>>>> izdejstvujem
>>>> bolje nagrade. Ako se onda bude javljalo vise ljudi, moze i da bude
>>>> cesce, sto da ne.
Mislim da poenta nije u vrednosti nagrade, vec u REKLAMI samog
takmicenja. Mozda treba da se glasnije zvoni na zvona. Postoji
jedan casopis koji se zove Racunari, u kome je ranije bilo nekoliko
santimetara posveceno dgadjanjima na Sezamu, a koji sada objavljuje
samo informaciju o visini clanarine, i broj telefona Sezama. Ranije
je bilo i izvestaja moderatora konferencija, pa bajtovi licne prirode
.......
Ovo nije samo konstatacija vezana za ovo takmicenje vec imam blagi
osecaj da opada broj clanova Sezama. Voleo bih da nisam u pravu !
Mora se uciniti nesto, a ne pustiti na "vote" jednu anketu, pa onda
sest meseci cekati (anketa o Sezamu).
Malo sam se zaneo, mozda ovo nije bas za ovu konferenciju - izvinjavam se.
Pozdrav, EMBE.
algoritmi.90embe,
Evo izvornog koda programa za IKS-OKS, koji je pobedio na konkursu.
Pozdrav, EMBE
mb_xosrc.zipalgoritmi.91vitez.koja,
#=> Mozda je mala motivacija (mesec dana pretplate)? Probaću da
#=> izdejstvujem bolje nagrade. Ako se onda bude javljalo više ljudi,
#=> može i da bude češće, što da ne.
Jok, meni lično se ne sviđa princip ko prvi pošalje... Mnogi
nemaju baš vremena tada nego neki drugi put i slično... Možda da bude
rok do nedelju dana, a da se šalje na mail ili slično...
sk
algoritmi.92deimos,
>> Jok, meni licno se ne svida princip ko prvi posalje... Mnogi
>> nemaju bas vremena tada nego neki drugi put i slicno... Mozda da bude
Potpuno se slazem. Verziju koju sam poslao uradio sam za sat vremena
sa sve sminkanjem, samo da bi bilo koliko-toliko brzo poslato. Poenta bi
treba da bude - ko posalje najbolje resenje (najlepse i najfunkcionalnije),
a ne ko posalje prvi. Naravno, nemam nista protiv toga sto je embe bio
najbrzi, i ovom prilikom mu cestitam na pobedi :)
.dEiMoS.
PS. Cekamo sledeci zadatak ! :)
algoritmi.93galimpic,
> Mislim da poenta nije u vrednosti nagrade, vec u REKLAMI samog
> takmicenja. Mozda treba da se glasnije zvoni na zvona.
Ipak ovo nije tako pretenciozno takmičenje da bi trebalo da se
zvoni - bar ga ja nisam tako doživeo. Međutim, da sam takmičar,
bio bi to vredan razlog da ostanem na Sezamu.
Ako bi stvarno bilo bar desetak ljudi ovde koji VOLE da programiraju,
kojima Clipper ne viri iz ušiju, za to sam da pravimo takmičenje
svake nedelje. Uopšte ne mora da bude toliko formalno kako sam ga
smislio. Na primer, hajde da pobednik svakog ciklusa zadaje sledeći
zadatak (malo i ja da se igram, a i ko će iz rukava da izvlači
stalno nešto novo :).
Što se tiče forme takmičenja, postoje načini da se sve organizuje
tako da budu nagrađena najbolja rešenja - prijavljivanja, mail,
pa čak i poseban podsistem kao što je VOTE. Ali, čemu komplikacije?
Bolje da bude svima dostupno i jednostavno, pa makar i nesavršeno.
A za reklamu, nije li moje ime (skoro) na samom vrhu impresuma? ;)
Sa' ću ja to da sredim! Gremlineeee...
algoritmi.94galimpic,
> Potpuno se slazem. Verziju koju sam poslao uradio sam za sat vremena
> sa sve sminkanjem, samo da bi bilo koliko-toliko brzo poslato.
Lepo si ga našminkao, ali nisi čitao pravila. Tako sam se nervirao
što niko u prvo vreme nije slao program koji ne završava odmah posle
prve partije! Sledeći put - manje pravila, više programiranja, jer
nemam nameru da zadajem lake zadatke.
algoritmi.95embe,
>> a ne ko posalje prvi. Naravno, nemam nista protiv toga sto je embe bio
>> najbrzi, i ovom prilikom mu cestitam na pobedi :)
Hvala na cestitkama, narocito je vredno kada one dodju od
"suparnika".
Pozdrav, EMBE
algoritmi.96embe,
>>> smislio. Na primer, hajde da pobednik svakog ciklusa zadaje sledeci
>>> zadatak (malo i ja da se igram, a i ko ce iz rukava da izvlaci
>>> stalno nesto novo :).
E ovo je stvarno dobra ideja !!! Taman imam par zadataka za koje
smatram da mogu da budu interesantni za neko od narednih takmicenja.
Ja sam ZA, i ako je moguce, vec sledece nedelje, TACNO U PODNE,
moglo bi se organizovati takmicenje, po istim principima kao i prvo.
Sta svi mislite o ovome ?
Jedno pitanje : Koju nagradu dobija moderator (galimpic) ako pobedi ?
:))))))
Pozdrav, EMBE
algoritmi.97mmarkovic,
Subject: takmičenje u programiranju
> Ako bi stvarno bilo bar desetak ljudi ovde koji VOLE da
> programiraju, kojima Clipper ne viri iz ušiju, za to sam da
> pravimo takmičenje svake nedelje.
Nisam očekivao ovakvu izjavu, ne na ovakvom mestu, i posebno, ne od
zvanične osobe!
Ako misliš da je pametnije utrošiti vreme na IKS-OKS, osvojiti 10 dinara
( to je negde oko 3 DEM, baš ste bili galantni ;), nego Clipperom zarađivati
pare ( da, o tome se radi ), onda svaka čast.
Zabavljajte se...
Ljudi, kojima "Clipper viri iz ušiju" obično znaju još ponešto. Uostalom,
pitaj nbatocanina, dvesica, bulaju ... Ima ih još.
P.S. Kada će biti zadatak "MICE", ili još nešto tako pametno, pa da prodamo
Microsoftu, pa looovaa, bato! ;>
algoritmi.98galimpic,
> Nisam očekivao ovakvu izjavu, ne na ovakvom mestu, i posebno, ne od
> zvanične osobe!
Slažem se da sam ovom neumerenom izjavom, s obzirom na moderatorski
status, uvredio ljude kojima je programiranje zanat. Izvinjavam se.
Molim samo da se uzme u obzir da je rasprava opuštenog tipa, kao i
to da je smisao te rečenice bio da je lepo i korisno baviti se
rekreativnim programiranjem.
> P.S. Kada će biti zadatak "MICE", ili još nešto tako pametno, pa da prodamo
> Microsoftu, pa looovaa, bato! ;>
Nije sve u parama.
algoritmi.99janko,
> Nije sve u parama.
Reče galimpic i emigrira. ;)
algoritmi.100embe,
>> Ako mislis da je pametnije utrositi vreme na IKS-OKS, osvojiti 10 dinara
>> ( to je negde oko 3 DEM, bas ste bili galantni ;), nego Clipperom zaradivati
>> pare ( da, o tome se radi ), onda svaka cast.
U svakom slucaju je zanimljivije. Zar ti stvarno mislis da su se
ljudi takmicili zbog 10 dinara ? Sto se tice zaradjivanja programiranjem,
pare se ne zaradjuju samo Clipper-om i programima za knjigovodstvo i plate.
Steta, ne moze se organizovati takmicenje na temu ko vise para
zaradi za jedan program, mislim da bi oni koji prave vizit-karte u
Photo Shopu ili vrse pripremu stampe odneli sva prva mesta.
Sto se tice MICA predlog je jako interesantan.
Izjava moderatora, stvarno je malo surova, ali svi mi kojima je
bila upucena nismo je shvatili kao uvredu Clipper-asima.
Pozdrav, EMBE
algoritmi.101mmarkovic,
Subject: takmičenje u programiranju, "Clipper viri iz ušiju"
> Slažem se da sam ovom neumerenom izjavom, s obzirom na
> moderatorski status, uvredio ljude kojima je programiranje
> zanat. Izvinjavam se.
Prihvaćeno izvinjenje, potpuno. Velika je stvar uočiti i priznati grešku.
Svaka čast, retki su ljudi kao ti.
Nadam se da će tvoje ime biti još višlje u impresumu, ali ne Gremlinovom
zaslugom ;)
> Nije sve u parama.
Ex, nije!
Dabome, nešto je i u zdravlju, deci i porodici, ali je sve lakše sa parama.
Pogledah ti res. Ideš u Kanadu. A zašto? I zbog para, sigurno.
Da ne kvarimo ovu temu više, ovo je za neku drugu.
-----------------------------------------------------------------------
Dakle, predlažem:
1. da se za takmičenje otvori neka druga tema u ovoj conf.
( "algoritam" za igru koja ima 3 (tri) suštinski različita početna
poteza ( ne nisam pogrešio: "ćoše", sredina strane i sredina polja )
ne zaslužuje da ostane u temi kao neka vrednost! Toliko je prosto, da
verovatno može da se reši if-ovima, kakva heuristika )
2. da zadaci budu teži i praktičniji, sa većim rokovima i vrednijim
nagradama ( recimo, licencirani prog.paketi )
( ljudi koji rade nemaju nikakve šanse! Mislim na nešto kao ono
takmičenje u poslovnim problemima gde Magic pobeđuje glatko )
3. da se programi daju u source-u, i da posle takmičenja budu PD
algoritmi.102mmarkovic,
Subject: takmičenje u programiranju
> U svakom slucaju je zanimljivije. Zar ti stvarno mislis da su
> se ljudi takmicili zbog 10 dinara ? Sto se tice zaradjivanja
> programiranjem, pare se ne zaradjuju samo Clipper-om i
> programima za knjigovodstvo i plate.
Sigurno da ne mislim da si pisao program zbog 10 din.
Ali zato ova zemlja i stoji ovako što je nečiji trud ovako vrednuje.
Dok se budemo takmičili u IKS-OKS-u, plaćali 10 dinara I mesto (ej, PRVO!),
dotle će nam, nažalost, galimpici i odlaziti u Kanadu, Novi Zeland...
Možda bi bilo korisnije da je prva nagrada donela original Borland C++,
ili, zašto ne, CA Clipper...
> Izjava moderatora, stvarno je malo surova, ali svi mi kojima je
> bila upucena nismo je shvatili kao uvredu Clipper-asima.
Jeste surova, ali čoveku se omaklo i izvinio se.
Pa, bila je upucena i Clipper-asima koji prate ovo. Nisam u zabludi:
dobar deo ljudi kojima "Clipper viri..." ne zna mnogo, ali mnogi
znaju mnogo više.
algoritmi.103embe,
>> ( "algoritam" za igru koja ima 3 (tri) sustinski razlicita pocetna
>> poteza ( ne nisam pogresio: "cose", sredina strane i sredina polja )
>> ne zasluzuje da ostane u temi kao neka vrednost! Toliko je prosto, da
>> verovatno moze da se resi if-ovima, kakva heuristika )
Ovo je bilo prvo takmicenje ! Moderator sigurno nije znao koju tezinu
zadatka moze da postavi. Uglavnom su reagovanja i bila tipa "... bio je
prilicno lak zadatak ..." I jos nesto, svaki je algoritam dobar ako
daje tacno resenje. A zadatak se i resavao sa if-ovima. Ne mislis
valjda da je trebalo praviti "vestacku inteligenciju" za ovaj tip
zadatka. Ne znam zasto se pljuje po ovoj tako dobroj ideji. Sigurno
postoji sansa da ovo takmicenje preraste u nesto ozbiljnije. Do tada
ce se valjda i pronaci prava mera kao i prave propozicije.
>> 2. da zadaci budu tezi i prakticniji, sa vecim rokovima i vrednijim
>> nagradama ( recimo, licencirani prog.paketi )
>> ( ljudi koji rade nemaju nikakve sanse! Mislim na nesto kao ono
>> takmicenje u poslovnim problemima gde Magic pobeduje glatko )
Sto se tice tezine i prakticnosti zadataka, u svakom slucaju si u
pravu. Sto se tice rokova, mozda bi trebalo voditi dva takmicenja
paralelno, jedno u "cugeru" a jedno u "dopisnom" programiranju :)
Shodno tome uskladjivala bi se tematika i obim zadataka.
O vecim nagradama moze samo da se sanja, potrebni bi bili sponzori
koji bi nasli svoj interes u tome. Ko ce jos da pokloni 1000 maraka
(~ cena BC4.5) nekim programerima koji se igraju na Sezamu ?
Ipak ne treba biti toliko strog sa kritikama, ovo je nadam se, tek
pocetak.
Pozdrav, EMBE
algoritmi.104galimpic,
> Nadam se da će tvoje ime biti još višlje u impresumu, ali ne Gremlinovom
> zaslugom ;)
Uff... jednom prilikom, dok je Gremlin bio na InfoFestu u Budvi, imao
sam svojih nedelju dana glavnouredničke prakse. Kakav haos i užas!
Možda sam ja neorganizovan, možda atmosfera u društvenom preduzeću
kakvo je BIGZ nije najbolja, ali... nikad više! Jedva se iščupah iz
tog pakla! Od tada ne zameram Gremlinu kada po tri puta zaboravi
nešto na šta ga podsećam.
> Pogledah ti res. Ideš u Kanadu. A zašto? I zbog para, sigurno.
Idem da bih bolje živeo i da ne gledam kako ponovo tonemo u komunizam.
Za ovo prvo trebaju pare, jasno, ali kao sredstvo.
> 1. da se za takmičenje otvori neka druga tema u ovoj conf.
Dobra ideja, ali tek ako takmičenje zaživi.
> ne zaslužuje da ostane u temi kao neka vrednost! Toliko je prosto, da
> verovatno može da se reši if-ovima, kakva heuristika )
To sam i ja mislio, pa ispade malo teže. Nije kvadratura kruga, jasno,
ali je potrebno pola sata - sat da se završi ako sve ide OK, taman za
ovo takmičenje.
> 2. da zadaci budu teži i praktičniji, sa većim rokovima i vrednijim
> nagradama ( recimo, licencirani prog.paketi )
Onda bi nam trebao i sponzor, jer Sezam to ne može da finansira.
Mislim da je nagrada koju predlažeš predimenzionirana, ali da bi
duža pretplata na Sezam ili Računare bile dovoljno primamljive.
> 3. da se programi daju u source-u, i da posle takmičenja budu PD
Za PD mislim da se niko neće buniti, ali zamisli kako izgleda source
kada se sve radi na brzinu. Ne mogu da teram autore da to srešuju.
BTW Malo smo odlutali od namene ove teme, lepo su mi govorili da takmičenje
treba da ide u 'razno'.
algoritmi.105mmarkovic,
Subject: takmičenje u programiranju
> A zadatak se i resavao sa if-ovima. Ne mislis valjda da je trebalo praviti
> "vestacku inteligenciju" za ovaj tip zadatka.
vinkom je spomenuo heuristiku. ( 1.71 ). Takvo rešenje bi bilo i vrednije od
"klasičnog", ali se ne može uraditi na brzinu. Može i heuristika, sigurno,
ali ne na takmičenju "ko prvi" ...
> Ne znam zasto se pljuje po ovoj tako dobroj ideji. Sigurno postoji sansa da
> ovo takmicenje preraste u nesto ozbiljnije. Do tada ce se valjda i
> pronaci prava mera kao i prave propozicije.
Ne, ne pljujem ja po toj ideji. Reakcija je bila pre svega na
"Clipper viri..."
Čak sam predložio:
1. posebna tema
2. teži i praktičniji zadaci
3. vrednije nagrade
> O vecim nagradama moze samo da se sanja, potrebni bi bili sponzori
> koji bi nasli svoj interes u tome.
Tako je. PCPRESS poklanja vrednu nagradu u svakom broju SAMO za popunjavanje
anketnog lista.
Neka im daju popust od 10-20-30% za reklame ako sponzorišu takmičenje. Neka
takmičenje bude na 2-3 meseca. Skupilo bi se, iha.
algoritmi.106embe,
Sta je sa predlogom da se takmicenja proguste ?
algoritmi.107galimpic,
> Nadam se da će tvoje ime biti još višlje u impresumu, ali ne Gremlinovom
> zaslugom ;)
Uff... jednom prilikom, dok je Gremlin bio na InfoFestu u Budvi, imao
sam svojih nedelju dana glavnouredničke prakse. Kakav haos i užas!
Možda sam ja neorganizovan, možda atmosfera u društvenom preduzeću
kakvo je BIGZ nije najbolja, ali... nikad više! Jedva se iščupah iz
tog pakla! Od tada ne zameram Gremlinu kada po tri puta zaboravi
nešto na šta ga podsećam.
> Pogledah ti res. Ideš u Kanadu. A zašto? I zbog para, sigurno.
Idem da bih bolje živeo i da ne gledam kako ponovo tonemo u komunizam.
Za ovo prvo trebaju pare, jasno, ali kao sredstvo.
> 1. da se za takmičenje otvori neka druga tema u ovoj conf.
Dobra ideja, ali tek ako takmičenje zaživi.
> ne zaslužuje da ostane u temi kao neka vrednost! Toliko je prosto, da
> verovatno može da se reši if-ovima, kakva heuristika )
To sam i ja mislio, pa ispade malo teže. Nije kvadratura kruga, jasno,
ali je potrebno pola sata - sat da se završi ako sve ide OK, taman za
ovo takmičenje.
> 2. da zadaci budu teži i praktičniji, sa većim rokovima i vrednijim
> nagradama ( recimo, licencirani prog.paketi )
Onda bi nam trebao i sponzor, jer Sezam to ne može da finansira.
Mislim da je nagrada koju predlažeš predimenzionirana, ali da bi
duža pretplata na Sezam ili Računare bile dovoljno primamljive.
> 3. da se programi daju u source-u, i da posle takmičenja budu PD
Za PD mislim da se niko neće buniti, ali zamisli kako izgleda source
kada se sve radi na brzinu. Ne mogu da teram autore da to sređuju.
BTW Malo smo odlutali od namene ove teme, lepo su mi govorili da takmičenje
treba da ide u 'razno'.
algoritmi.108galimpic,
> Sta je sa predlogom da se takmicenja proguste ?
Već posle prvog kola? Ajde, važi, ali nemoj da mi opet učestvuje
troje ljudi. Dakle, u nedelju u podne idemo opet. Biće i zvanično.
algoritmi.109plovput,
+| Već posle prvog kola? Ajde, važi, ali nemoj da mi opet učestvuje
+| troje ljudi. Dakle, u nedelju u podne idemo opet. Biće i zvanično.
Bolje da zadaci budu vezani za grafiku (barem neki put).
Znaci zoomiranje slike, rotiranje, neki demo efekti..
Pa kome radi program brze i koji je lepsi i kraci odnosi nagradu.
Time bi se i zadovoljio time limit sto se tice brzine slanja resenja.
Da se da rok do nekih 5 dana kako bi svi stigli em da vide zadatak em da
ga posalju.
Ovako imamo situaciju da u jednom textpadu mozemo videti i zadatak
i odgovor a ko zna mozda vec i proglasenje pobednika sto nije dobro.
algoritmi.110embe,
>>>> Vec posle prvog kola? Ajde, vazi, ali nemoj da mi opet ucestvuje
>>>> troje ljudi. Dakle, u nedelju u podne idemo opet. Bice i zvanicno.
Sigurno ce biti MANJE OD TROJE LJUDI, ako se ne uputi poruka koju ce svi
moci da procitaju, tj. sistemska poruka. Tako ce se i oni koji ne
prate ovu konferenciju mozda zaintrigirati !
Sto se tice predloga (1.109 plovput-a), mislim da je ipak bolje da
se ostane u domenu algoritama i ocenjivanja programa sa tacno-netacno.
U suprotnom, pitanje najboljeg resenja moze biti stvar subjektivne
procene, a to je stvarno, stvarno skakljivo....
algoritmi.111vitez.koja,
#=> Sto se tice predloga (1.109 plovput-a), mislim da je ipak bolje da
#=> se ostane u domenu algoritama i ocenjivanja programa sa
#=> tacno-netacno.
Ocenjivanje programa sa tačno-netačno bi trebalo da bude samo na
osnovu test podataka, te da to što korisnici-takmičari dodatno
ispituju taj program (i nalaze falinke, kao što je autor sada našao
sam sebi za program koji je prvobitno proglašen pobednikom ;), ne bi
smelo da utiče na ocenu tačnosti programa, tj. da je potpuno
dozvoljeno uraditi i program tipa
if test_primer_1 then print bla_bla_1
else if test_primer_2 then print bla_bla_2
else ....
ako se na neki volšeban način dođe do test primera...
sk
algoritmi.112vinkom,
> vinkom je spomenuo heuristiku. ( 1.71 ).
Evo da se i ja, kao jedan od ucesnika takmicenja, javim. Zadatak
sam resio pomocu nekakve heuristike koja se sastojala u tome da
sam kod odlucivanja koji cu potez odigrati, odigrao sve moguce
partije do kraja pocevsi od trenutne situacije na tabli (to sam
mogao u realnom vremenu zbog male dimenzije table). Sabirao sam
koja su zadnje odigrana pobednicka polja za kompjuter odnosno
za coveka, te sam odigrao potez na ono polje koje je najvise
odgovaralo coveku (tj. na maksimalnu razliku 'covek je sa tim
poljem pobedjivao' minus 'kompjuter je sa tim poljem pobedjivao').
Sama formula je imala i mana koje sam naknadno 'frizirao' IF
naredbama. Naime prva verzija je gubila od coveka, sledeca nije
dobijala uvek kad je mogla, a nadam se da zadnja ispunjava sve
zadane kriterije.
Ovaj nacin resavanja u momentu mi se ucinio boljim od upotrebe
IF naredbi. Iako sa neizvesnim ishodom istrajao sam do kraja.
Moglo se to i bolje resiti da je kompjuter igrao u tom
'razigravanju' inteligentno, tj. najbolje sto moze, pa se
jednostavno odabere onaj potez gde kompjuter sigurno pobedjuje
ili u najgorem slucaju igra nereseno. No, tada bi uleteo u malo
slozenije rekurzije, gde je postojala mogucnost zapetljavanja,
a to u brzinskom takmicenju nisam smeo dozvoliti.
Eto toliko o zadatku i heuristici.
Sto se tice takmicenja misljenja sam da bi trebalo i dalje da
bude brzinsko. Takmicenje na duzi rok bile su 'Pitalice' u
'Racunarima'. Ne znam zasto se to takmicenje po drugi put ugasilo
kada se vidi da za njega postoji interesovanje. Tu su se mogli
davati i tezi i ozbiljniji zadaci, a u ovakvom brzinskom
takmicenju zadaci bi trebali biti tezine zadataka saveznog
takmicenja iz informatike ili informatickih olimpijada i opsteg
tipa kako bi svi imali podjednake sanse. Samo takmicenje ne bi
trebalo da traje duze od 1 do 3 sata. Vreme odrzavanja je dobro,
dakle kroz jutro neradnim danom kad telefonske linije nisu
zagusene, a i na SEZAM-u nema puno korisnika te se na taj nacin
ne gubi, tada dragoceno, vreme cekajuci na uspostavljanje veze.
I na kraju jos dva predloga:
- da se kontrolor (galimpic) cesce ukljucuje i kontrolise resenja,
te daje izvestaje o toku takmicenja,
- da se datoteka sa test podacima okaci u konferenciju kako bi i
mi mogli da testiramo i vrednujemo pristigla resenja na kraju
takmicenja i eventualno damo svoje primedbe (to se moze izvesti
tako da se sifrovana datoteka sa test primerima okaci zajedno sa
zadatkom (u 12:00), a kad se proglasi pobednik da se dostavi kljuc
kojim cemo desifrovati test datoteku i proveriti svoje i
konkurentske programe).
Izvinjavam se na duzini teksta, ali nakupilo se ovih nekoliko dana :)
algoritmi.113galimpic,
> ako se na neki volšeban način dođe do test primera...
Neće se doći do test primera. Tačka.
algoritmi.114galimpic,
> Zadatak
> sam resio pomocu nekakve heuristike koja se sastojala u tome da
> sam kod odlucivanja koji cu potez odigrati, odigrao sve moguce
> partije do kraja pocevsi od trenutne situacije na tabli
Onda to nije heuristika već gruba sila, zar ne?
> - da se datoteka sa test podacima okaci u konferenciju kako bi i
> mi mogli da testiramo i vrednujemo pristigla resenja na kraju
> takmicenja i eventualno damo svoje primedbe (to se moze izvesti
> tako da se sifrovana datoteka sa test primerima okaci zajedno sa
> zadatkom (u 12:00), a kad se proglasi pobednik da se dostavi kljuc
> kojim cemo desifrovati test datoteku i proveriti svoje i
> konkurentske programe).
Tada bi trebale dve prve nagrade za dve različite grupe rešavača:
jedna za najbržeg programera, druga za najboljeg razbijača šifre :)
algoritmi.115galimpic,
Moraćemo da ipak odložimo takmičenje za sledeću nedelju. U pitanju su neki
tehnički razlozi.
algoritmi.116deimos,
>> Evo da se i ja, kao jedan od ucesnika takmicenja, javim. Zadatak
>> sam resio pomocu nekakve heuristike koja se sastojala u tome da
>> Ovaj nacin resavanja u momentu mi se ucinio boljim od upotrebe
>> IF naredbi. Iako sa neizvesnim ishodom istrajao sam do kraja.
Svaka cast, ali zar niko nije razmisljao o tome da su za
ovu igru (sa programerskog stanovista) dovoljni samo par uslova?
S obzirom da je tabla samo 3x3, vazi sledece:
1. Ako je komp u sredini polja ili na sredini strane
onda sme da igra samo po sredini stranica, odnosno u
centar dok je to moguce, a onda pod 3).
2. Ako je komp u uglu, onda mora da igra po uglovima, sve
dok je to moguce , a onda po poljima udaljenim najmanje
za dva, a zatim pod 3).
3. Komp igra bilo gde (ako se dodje do ovde onda je sigurno
nereseno).
Ovim metodom se dobija sledece:
- Program ne mora da prati covekove poteze
- Program ne mora da prati svoje poteze
- Program prati samo zauzeta mesta u 9-o clanom nizu.
- Druga od dve procedure u celom programu samo
proverava da li je partija gotova (ima li pobednika).
Normalno, da je tabla NxM, onda bi bilo mozda zgodnije da se radi
po principu heuristike ili neceg slicnog, mada je i onda ovo primenljivo,
samo sto bi se lista uslova produzila, pa bi bilo suvise glomazno.
>> Sto se tice takmicenja misljenja sam da bi trebalo i dalje da
>> bude brzinsko. Takmicenje na duzi rok bile su 'Pitalice' u
>> tipa kako bi svi imali podjednake sanse. Samo takmicenje ne bi
>> trebalo da traje duze od 1 do 3 sata. Vreme odrzavanja je dobro,
Ne slazem se, jer nisu svi u mogucnosti da rezervisu
nedelju u 12-15h za takmicenje na Sezamu, jer Sezam nije obaveza,
vec je vise na razonodnoj bazi za vecinu korisnika, koji bi i
pored svojih obaveza zeleli da se takmice. Konkretno, ja sam bio
sprecen prosli put da se odazovem u to vreme, a zadatak sam video
tek u ponedeljak po podne, a sigurno nisam poslednji koji je procitao
poruku sa zadatkom.
Ako bi se dao rok, npr: saljite resenja zadatka od trenutka kada
je objavljen do <narednih-par-dana>. Konkretno to bi znacilo sledece:
- Takmicenje traje od 12h u nedelju do 12h u npr. sredu.
- Rezultati u vidu tabele (1., 2., 3. ... mesto ) se
objavljuju izmedju srede i nedelje, kao i prilazu primedbe
i komentari ( za ovo bi stvarno mogla i posebna tema,
narocito ako je u vidu da takmicenja budu redovna ).
- Poslata resenja salju se u conf. da bi i ostali ucesnici, ako
'ziriju' promakne, mogli da ukazu na neispravnost nekog resenja.
Ovime ce se bitno povecati broj ucesnika, a sa tim i konkurencija,
pa ce i celo takmicenje biti zanimljivije.
>> I na kraju jos dva predloga:
>> - da se kontrolor (galimpic) cesce ukljucuje i kontrolise resenja,
Ovo je dobra ideja. 'Kontrolor' bi mogao, u slucaju da takmicenje
traje par dana, svakog dana da neku vrstu 'prolaznog vremena',
diskvalifikacije, ukaze na masovno dezinterpretiranje pravila O:)...
Izvinjavam se na duzini poruke.
.dEiMoS.
algoritmi.117vinkom,
>> Zadatak
>> sam resio pomocu nekakve heuristike koja se sastojala u tome da
>> sam kod odlucivanja koji cu potez odigrati, odigrao sve moguce
>> partije do kraja pocevsi od trenutne situacije na tabli
> Onda to nije heuristika vec gruba sila, zar ne?
Heuristika dolazi posle upotrebe grube sile. Rezultate dobijene
upotrebom grube sile trebalo je na neki nacin intepretirati i
odabrati sledeci potez. Za interpretacije koje sam koristio nisam
unapred znao da li su dobre, dokle nisam testirao program i video
kako ce se ponasati. Sve je bilo bazirano na nekom osecaju da je
to prava stvar. Od svih interpretacija (pa mozemo reci i
heuristickih formula) ja sam izabrao onu koja se najbolje ponasala,
tj. izabirala najbolji potez.
Gruba sila bi ostala gruba sila da je kompjuter u tom razigravanju
igrao inteligentno, tj. kod odigravanja svog poteza koristio ovu
istu proceduru kojom odigrava i potez u pravoj partiji, pa da se
onda odabere onaj pravac gde se sigurno dobija ili igra nereseno.
To nisam igrao jer sam izbegavao komplikacije. Kod razigravanja u
ovom programu potezi su nasumice bili odigrani, tj. popunjavalo se
prvo slobodno polje kako za coveka tako i za kompjuter.
>> takmicenja i eventualno damo svoje primedbe (to se moze izvesti
>> tako da se sifrovana datoteka sa test primerima okaci zajedno sa
>> zadatkom (u 12:00), a kad se proglasi pobednik da se dostavi kljuc
>> kojim cemo desifrovati test datoteku i proveriti svoje i
>> konkurentske programe).
>Tada bi trebale dve prve nagrade za dve razlicite grupe resavaca:
>jedna za najbrzeg programera, druga za najboljeg razbijaca sifre :)
Ja ipak mislim da bi bila dovoljna jedna prva nagrada, ali bi se
zadatak u startu resavao na dva sustinski razlicita nacina. Jedan bi
bio normalno resavanje problema, a drugi razbijanje sifre i pravljenje
programa IF <test1> then <resenje1>... , pa ko bude brzi, samim tim i
bolji :)
algoritmi.118embe,
deimos:(1.116)
>> 1. Ako je komp u sredini polja ili na sredini strane
>> onda sme da igra samo po sredini stranica, odnosno u
>> centar dok je to moguce, a onda pod 3).
>> 2. Ako je komp u uglu, onda mora da igra po uglovima, sve
>> dok je to moguce , a onda po poljima udaljenim najmanje
>> za dva, a zatim pod 3).
>> 3. Komp igra bilo gde (ako se dodje do ovde onda je sigurno
>> nereseno).
Koliko sam razumeo ova pravila, sa njima se dobija SAMO korektno
igranje. U u svakom slucaju ovo nisu najbolji potezi. Gde je tu
anticipacija "mata" u dva poteza...
vinkom:(1.112)
><>< Sto se tice takmicenja misljenja sam da bi trebalo i dalje da
><>< bude brzinsko. Takmicenje na duzi rok bile su 'Pitalice' u
><>< 'Racunarima'. Ne znam zasto se to takmicenje po drugi put ugasilo
deimos:(1.116)
<><> - Takmicenje traje od 12h u nedelju do 12h u npr. sredu.
<><> - Rezultati u vidu tabele (1., 2., 3. ... mesto ) se
<><> objavljuju izmedju srede i nedelje, kao i prilazu primedbe
<><> i komentari ( za ovo bi stvarno mogla i posebna tema,
Mozda bi se mogli pomiriti oni koji su za "brzanjac" i oni
koji su za "sporac", a da pri tome ne budu osteceni ni jedni ni
drugi. Iako bi se takmicenje odrzavalo nekoliko dana, pobednik
bi bio onaj koji prvi posalje potpuno tacno resenje. A da bi se
pomirila ta dva uslova, mora se napraviti jedno ogranicenje:
U jednom danu, jedan takmicar moze da posalje SAMO JEDNO resenje;
Ovime se ocigledno:
- daje veca sansa onima koji nisu na Sezamu u odredjeno vreme,
- i dalje moze objektivno, a ne subjektivno ocenjivati program,
- olaksava posao Kontroloru, jer ce biti manji broj resenja,
- povecava napetost i zanimljivost (morace se dobro testirati
program kod kuce, a za to vreme neko moze da vas preduhitri,
testiranje je neophodno, jer pravo na sledeci pokusaj se ima tek
sledeceg dana)
Pozdrav, EMBE
algoritmi.119embe,
>>>> - Poslata resenja salju se u conf. da bi i ostali ucesnici, ako
>>>> 'ziriju' promakne, mogli da ukazu na neispravnost nekog resenja.
Pa i jesu. SVA resenja su se mogla prekontrolisati.
algoritmi.120sjocic,
├> Moraćemo da ipak odložimo takmičenje za sledeću nedelju. U pitanju su
├> neki tehnički razlozi.
U međuvremenu, evo je igrica iz prvog zadatka ali u Win varijanti.
Mogućnosti 3x3, 3x3x3, 4x4x4, ali videćete već sami...
xo.zipalgoritmi.121space.ace,
--> Ovo je dobra ideja. 'Kontrolor' bi mogao, u slucaju da takmicenje
Šta je ovo, 'Kontrolori' ponovo među nama? A baš smo ih se otarasili!!! ;)
algoritmi.122deimos,
>> Koliko sam razumeo ova pravila, sa njima se dobija SAMO korektno
>> igranje. U u svakom slucaju ovo nisu najbolji potezi. Gde je tu
>> anticipacija "mata" u dva poteza...
Ne, ovo su samo osnovni uslovi (po mojoj zamisli) receni
srpskim jezikom, to bi se u realizaciji malo drugacije primenilo,
mada bi i direktna primena ispunila uslove zadatka.
>> >>>> - Poslata resenja salju se u conf. da bi i ostali ucesnici, ako
>> >>>> 'ziriju' promakne, mogli da ukazu na neispravnost nekog resenja.
>> Pa i jesu. SVA resenja su se mogla prekontrolisati.
Tri stavke koje sam naveo trebale su da budu moj predlog za
stalne propozicije takmicenja, a ova poslednja je tu zato sto su
bili i predlozi da se resenja salju na mail, sto ne smatram 'sportski'.
Inace, vise sam uzivao u razgledanju, testiranju i trazenju bagova
u ostalim programima, nego sto sam uzivao dok sam pravio svoj
program, pa bih voleo tako i da ostane...
.dEiMoS.
algoritmi.123vinkom,
> 1. Ako je komp u sredini polja ili na sredini strane
> onda sme da igra samo po sredini stranica, odnosno u
> centar dok je to moguce, a onda pod 3).
> 2. Ako je komp u uglu, onda mora da igra po uglovima, sve
> dok je to moguce , a onda po poljima udaljenim najmanje
> za dva, a zatim pod 3).
> 3. Komp igra bilo gde (ako se dodje do ovde onda je sigurno
> nereseno).
Algoritam nije bas najprecizniji, ali recimo:
1. C = 5
2. K = 2 (za prvi potez nista nije precizirano)
3. C = 1
4. K = 4 Po pravilu 1., a na osnovu odigranog 2. poteza
5. C = 9 Covek je pobedio
Ili mozda:
1. C = 5
2. K = 1
3. C = 2
4. K = 7 Po pravilu 2., a na osnovu odigranog 2. poteza
5. C = 8 Covek je pobedio
itd. Dakle, ispada da gore navedeni algoritam samo odigrava poteze
koji i nisu nesto povezani.
> Ovim metodom se dobija sledece:
> - Program ne mora da prati covekove poteze
Pokazali smo da program mora da prati covekove poteze, a posebno
kad covek igra prvi.
> - Program ne mora da prati svoje poteze
Vec se u samom algoritmu kaze se da ako je komp. tu i tu igra tu i
tu, pa ispada da mora da prati i svoj(e) poteze.
Ova igrica koliko god bila mala ima i svoju strategiju koja i nije
bas toliko jednostavna. Koliko god se heuristika cinila komplikacijom
u sustini sve je reseno sa dve dvolinijske uzajamno rekurzivne
procedure i petljom koja trazi maximum. Istina bilo je testiranja
programa, ali nisu bile potrebne detaljne analize strategije igre.
Ja bih posebno bio zadovoljan da nisam morao to resenje dodatno da
friziram sa nekim IF-om, ali sam i ubedjen da bi spretnije izabrana
heuristicka funkcija resila celi problem. U svakom slucaju sa
heuristikom i program ima dusu.
Sve u svemu ipak vodimo diskusiju u okviru teme :)
>> Sto se tice takmicenja misljenja sam da bi trebalo i dalje da
>> bude brzinsko. Takmicenje na duzi rok bile su 'Pitalice' u
> Ne slazem se, jer nisu svi u mogucnosti da rezervisu
> nedelju u 12-15h za takmicenje na Sezamu, jer Sezam nije obaveza,
Sta bi po tebi bio kriterij po cemu bi se rangirali takmicari. Od
njih imas samo EXE kod i vreme kada su ga poslali. Ako je kriterij
ispravan program za ocekivati je da ce vise takmicara u duzem roku
dati tacno resenje. Da ne kazem da neko moze skinuti necije resenje,
preimenovati ga i poslati kao svoje. Ako kao dodatni kriterij uzmes
vreme, opet ce biti osteceni oni koji nisu u igri od pocetka, tj. u
istom PAD-u procitat ce i zadatak i resenje. Zato bi stvarno ovo
takmicenje trebalo ostati brzinsko, a sami takmicari i da se malo
zrtvuju ako zele da ucestvuju, a ako se ne moze i ne mora se svaki
put ucestvovati. Iako mozda zvucim kontradiktorno i meni vise
odgovara duzi rok, ali bi tada takmicenje bilo kao sto su nekad
bile 'Pitalice'. Pa kad sam ih opet spomenuo da pitam galimpic-a
zasto je to takmicenje ukinuto.
algoritmi.124janko,
> Sta bi po tebi bio kriterij po cemu bi se rangirali takmicari. Od
> njih imas samo EXE kod i vreme kada su ga poslali. Ako je kriterij
Ovo je po meni i glavna slabost takmičenja. Jedino za takmičenja
kod kojih nema interakcije (introi) ima smisla tražiti samo EXE.
Dokazati ispravnost EXE programa je za bilo koji složeniji problem
(dakle čim je reč o interakciji) najčešće praktično nemoguće.
algoritmi.125deimos,
>> Algoritam nije bas najprecizniji, ali recimo:
>> 1. C = 5
Nismo se bas najbolje razumeli, ali vec sam rekao da ga
nisam direktno primenjivao...
>> > - Program ne mora da prati svoje poteze
>> Vec se u samom algoritmu kaze se da ako je komp. tu i tu igra tu i
>> tu, pa ispada da mora da prati i svoj(e) poteze.
Ako gledas tako, onda si u pravu, ali poenta je u tome da
program ne prati sve svoje poteze kako bi nekim predefinisanim
postupkom dobio coveka iz treceg ili petog potezana osnovu onog
od pre dva kruga.
>> Ova igrica koliko god bila mala ima i svoju strategiju koja i nije
>> bas toliko jednostavna. Koliko god se heuristika cinila komplikacijom
>> u sustini sve je reseno sa dve dvolinijske uzajamno rekurzivne
Ima jedna zajednicka stvar za sve programere - svako od nas
misli, i duboko je ubedjen, da je njegovo resenje naj-naj, a ostala
su u najboljem slucaju ok, iako, uglavnom, niko od nas nije u pravu.
(ovo nije uvek pravilo i nije upuceno samo tebi).
Sve u svemu ipak vodimo diskusiju u okviru teme :)
>> Sta bi po tebi bio kriterij po cemu bi se rangirali takmicari. Od
>> njih imas samo EXE kod i vreme kada su ga poslali. Ako je kriterij
1. Tacnost
2. Brzina i velicina programa (efikasnost pri radu)
3. Funkcionalnost, preglednost, pristupacnost korisniku
4. Estetska vrednost programa
5. ...
Moze jos toga da dodje konkurenciju.
Zamisli ovako: imas ispit koji pocinje u 12h i traje do 15h.
Skeledzija prevozi studente preo Morave u grupama od po 15 njih do
fakulteta koji pocinju da rade cim stignu. Ko prvi od svih studenata
uradi vise od 50% (dobije 6-icu), prolazi ispit, a ostali padaju, cak
i ako jos nisu dosli na red kod skeledzije... apsurdno?
Druga stvar bi bila da se skupe svi ucesnici na nekom mestu,
pa da dobiju zadatke i da pocnu u isto vreme. E, onda je tri sata i
vise nego dovoljno, a bilo bi jos bolje da vazi - ko prvi, a ovako...
>> put ucestvovati. Iako mozda zvucim kontradiktorno i meni vise
>> odgovara duzi rok, ali bi tada takmicenje bilo kao sto su nekad
>> bile 'Pitalice'.
Sta fali pitalicama? Sta mislis da su i pitalice bile
brzinske? Verujem da ne bi trajale ni priblizno onoliko koliko jesu...
.dEiMoS.
algoritmi.126vinkom,
> Ima jedna zajednicka stvar za sve programere - svako od nas
>misli, i duboko je ubedjen, da je njegovo resenje naj-naj, a ostala
>su u najboljem slucaju ok, iako, uglavnom, niko od nas nije u pravu.
>(ovo nije uvek pravilo i nije upuceno samo tebi).
Nemoj da se ljutis, nisam hteo da kazem da je moje resenje bolje od
resenja sa IF naredbama, vec da ne zaostaje za njima.
> 1. Tacnost
> 2. Brzina i velicina programa (efikasnost pri radu)
> 3. Funkcionalnost, preglednost, pristupacnost korisniku
> 4. Estetska vrednost programa
> 5. ...
Tacnost i brzinu ocekujem od vecine dospelih programa, a velicina
programa bi neke takmicare u startu mogla izbaciti iz igre ako rade
sa losim kompajlerima, a opet druge naterati da pisu programe u
asembleru sto isto nije cilj takmicenja. Sto se tice ostalih
navedenih kriterija mislim da oni spadaju u umetnicki dojam i da nisu
bili cilj ovom takmicenju, a to je napraviti sto brze program koji
resava problem.
> Zamisli ovako: imas ispit koji pocinje u 12h i traje do 15h.
>Skeledzija prevozi studente preo Morave u grupama od po 15 njih do
Slazem se sa tobom da postoje problemi u vidu ogranicenog broja ulaza
u sistem (iako sam se u vreme takmicenja bez problema logovao),
preopterecenosti telefonskih centrala, dvojnika i slicnog. Mozda bi
vreme svakog takmicara trebalo da se racuna od vremena njegovog prvog
logovanja posle ostavljanja zadatka u konferenciju, a da ono mora
biti maksimalno jedan sat posle ostavljanja zadatka.
>>> odgovara duzi rok, ali bi tada takmicenje bilo kao sto su nekad
>>> bile 'Pitalice'.
> Sta fali pitalicama? Sta mislis da su i pitalice bile
>brzinske? Verujem da ne bi trajale ni priblizno onoliko koliko
jesu...
Nisam 'Pitalice' spomenuo u negativnom kontekstu, vec naprotiv.
Mislio sam da bi propozicije za to takmicenje bile iste kao
i za pitalice, tj. slalo bi se resenje sa objasnjenjem i
izvornim kodom programa. Licno mi je jako zao sto je to
takmicenje ponovo prekinuto, kad god sam mogao ucestvovao
sam i o njemu imam veoma pozitivno misljenje.
algoritmi.127galimpic,
> bile 'Pitalice'. Pa kad sam ih opet spomenuo da pitam galimpic-a
> zasto je to takmicenje ukinuto.
Zato što na jesen idem u Kanadu, pa da na vreme stanemo dok se takmičenje
još nije previše razvilo. Ta nova serija "Pitalica" je bila sasvim moja
inicijativa i posao, pa ne znam da li bismo našli drugog da se bavi time.
Sada umesto toga ide nova rubrika (koja još nije do kraja profilisana, btw)
sa lepom osobinom da može da se prekine u svakom trenutku.
algoritmi.128imangovski,
>> bile 'Pitalice'. Pa kad sam ih opet spomenuo da pitam galimpic-a
>> zasto je to takmicenje ukinuto.
>
> Zato sto na jesen idem u Kanadu, pa da na vreme stanemo dok se takmicenje
> jos nije previse razvilo. Ta nova serija "Pitalica" je bila sasvim moja
> inicijativa i posao, pa ne znam da li bismo nasli drugog da se bavi time.
> Sada umesto toga ide nova rubrika (koja jos nije do kraja profilisana, btw)
> sa lepom osobinom da moze da se prekine u svakom trenutku.
Kad smo vec kod Pitalica, jel ima neko resenje one 'cuvene' koju je postavio
DR u kojoj se traze brojevi x i y:jedan covek je rekao 1.matematicaru x, a
drugom y.Kad su se sreli prvi je rekao drugom da zna njegov broj, a na to je
ovaj drugi odgovorio da sad i on zna oba broja. Text je verovatno drugaciji, pa
ako ga neko zna neka ga okaci zajedno sa resenjem.
algoritmi.129deimos,
>> Nemoj da se ljutis, nisam hteo da kazem da je moje resenje bolje od
>> resenja sa IF naredbama, vec da ne zaostaje za njima.
Ma ne ljutim se ja, kometar je bio vise samokriticki, a sto
se tice vrednosti, da ja ocenjujem, sigurno bi vrednovao vise
program koji je radjen putem heuristike nego onaj sa obicnim IFovima.
.dEiMoS.
algoritmi.130embe,
>> galimpic, 10.05.96. 09:49, 95 chr
>> ---------------------------------------------------------
>> Moracemo da ipak odlozimo takmicenje za sledecu nedelju. U pitanju su
>> neki tehnicki razlozi.
Vec je cetvrtak uvece, uoci te sledece nedelje a o takmicenju ni rec!?
Da li ce se odrzati ili ne ?
algoritmi.131galimpic,
> Vec je cetvrtak uvece, uoci te sledece nedelje a o takmicenju ni rec!?
> Da li ce se odrzati ili ne ?
Ne, ne, biće zadnje nedelje u mesecu kao i prošli put, dakle 26. maja.
Pravila ista, u zavisnosti od broja učesnika prelazimo na nedeljno ili
ostajemo gde jesmo.
algoritmi.133dzakic,
** VANREDNI ZADATAK TAKMIČENJA U PROGRAMIRANJU **
Pošto je galimpić, moderator ove konferencije, ove nedelje zauzet,
pripremili smo još jedan zadatak kao uvertiru za takmičenje koje će,
nadamo se, postati tradicionalno. Propozicije su ovoga puta nešto
drugačije jer je i zadatak malo (?) teži.
Rešenje u izvornom kodu treba dostaviti korisniku 'zadaci'.
Osnovni kriterijum za ocenjivanje je vreme za koje program pronalazi
rešenje, a krajnji rok za dostavljanje rešenja je sreda, 22. maj, do
24.00h ˝ 5 min :). Vreme kada je zadatak poslat ne utiče na plasman.
Autor najboljeg rešenja dobiće tromesečnu pretplatu na SezamNet i
večnu slavu :)
algoritmi.134dzakic,
> ** VANREDNI ZADATAK TAKMIČENJA U PROGRAMIRANJU **
Tekst zadatka biće obljavljen danas (nedelja, 19. maj)
oko 12 časova.
algoritmi.135dzakic,
** VANREDNI ZADATAK TAKMIČENJA U PROGRAMIRANJU **
Standardni set domina sastoji se od 28 komada od kojih svaki sadrži
dva polja sa određenim brojem tačkica (od 0 do 6, gde je 0 prazna
domina). Pločice su jedinstvene (nema dve domine sa istim rasporedom),
numerisane, i sastoje se od sledećih kombinacija tačkica:
Redni br. Raspored │ Redni br. Raspored
domine polja │ domine polja
─────────────────────────┼─────────────────────
#1 0/0 │ #15 2/3
#2 0/1 │ #16 2/4
#3 0/2 │ #17 2/5
#4 0/3 │ #18 2/6
#5 0/4 │ #19 3/3
#6 0/5 │ #20 3/4
#7 0/6 │ #21 3/5
#8 1/1 │ #22 3/6
#9 1/2 │ #23 4/4
#10 1/3 │ #24 4/5
#11 1/4 │ #25 4/6
#12 1/5 │ #26 5/5
#13 1/6 │ #27 5/6
#14 2/2 │ #28 6/6
Domine X/Y i Y/X su jedna ista domina.
Komplet domina se može postaviti na sto tako da formira pravougaonu
matricu veličine 7 x 8 polja (polje je jedna polovina domine).
Primetimo da ređanje domina nije po pravilima igre, već apsolutno
proizvoljno.
Svaki raspored tačkica (brojeva) može se predstaviti najmanje jednom
"mapom" domina. Mapa se sastoji od matrice iste veličine kao i
struktura domina (7 x 8), takve da element matrice predstavlja redni
broj domine postavljene na odgovarajuće mesto u pravougaonoj
strukturi. Primer jedne pravougaone strukture i odgovarajuće mape
rasporeda domina prikazan je na slici:
Pravogaona struktura Mapa rasporeda domina koje
domina (7 x 8): čine takvu strukturu:
6 6 2 6 5 2 4 1 28 28 14 7 17 17 11 11
1 3 2 0 1 0 3 4 10 10 14 7 2 2 21 23
1 3 2 4 6 6 5 4 8 4 16 25 25 13 21 23
1 0 4 3 2 1 1 2 8 4 16 15 15 13 9 9
5 1 3 6 0 4 5 5 12 12 22 22 5 5 26 26
5 5 4 0 2 6 0 3 27 24 24 3 3 18 1 19
6 0 5 3 4 2 0 3 27 6 6 20 20 18 1 19
Napisati program koji analizira dati raspored brojeva u pravougaonoj
strukturi veličine 7 x 8 i daje pozicije domina iz seta kojima se taj
raspored ostvaruje (mapu).
Ulazna tekst datoteka "DOMINE.IN" nalazi se u tekućem katalogu i
sastoji se od sedam linija sa po 8 celih brojeva u rangu (0..6), koje
odslikavaju raspored polja (tačkica) u matrici. Brojevi su međusobno
razdvojeni sa jednim ili više razmaka (SPACE). Garantuje se korektnost
ulaznih podataka tako da nema potrebe obrađivati situacije koje mogu
nastati usled loše zadatog ulaza (manjak podataka, brojevi van opsega
i sl.)
Korektan program treba da na izlazu prvo ispiše samu ulaznu matricu,
a potom, razdvojenu jednom praznom linijom, mapu domina koje formiraju
zadati raspored polja. Ukoliko ima više rešenja koje zadovoljavaju
zadati problem odštampati ih razdvojene jednom praznom linijom. Na
kraju treba odštampati ukupan broj rešenja.
Primer korektnog ulaza i izlaza dat je ispod:
"DOMINE.IN"
4 2 5 2 6 3 5 4
5 0 4 3 1 4 1 1
1 2 3 0 2 2 2 2
1 4 0 1 3 5 6 5
4 0 6 0 3 6 6 5
4 0 1 6 4 0 3 0
6 5 3 6 2 1 5 3
˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
Izlaz u "DOMINE.OUT" i na konzolu:
4 2 5 2 6 3 5 4
5 0 4 3 1 4 1 1
1 2 3 0 2 2 2 2
1 4 0 1 3 5 6 5
4 0 6 0 3 6 6 5
4 0 1 6 4 0 3 0
6 5 3 6 2 1 5 3
Mape domina za zadati raspored tačkica:
16 16 24 18 18 20 12 11
6 6 24 10 10 20 12 11
8 15 15 3 3 17 14 14
8 5 5 2 19 17 28 26
23 1 13 2 19 7 28 26
23 1 13 25 25 7 4 4
27 27 22 22 9 9 21 21
16 16 24 18 18 20 12 11
6 6 24 10 10 20 12 11
8 15 15 3 3 17 14 14
8 5 5 2 19 17 28 26
23 1 13 2 19 7 28 26
23 1 13 25 25 7 21 4
27 27 22 22 9 9 21 4
Postoje 2 rešenja za dati raspored.
Rešenje u izvornom kodu dostaviti e-mailom na username "zadaci". U
tekstu poruke napisati okvirno vreme za koje program nalazi rešenje
(procesor, takt), a sors zakačiti kao datoteku uz poruku. Dozvoljeni
su svi živi i mrtvi jezici (nemoj neko da je poslao u Algol-u ;), a
blagu preporuku imaju C/C++ i Pascal.
Kriterijum za ocenjivanje je vreme izvršavanja programa, a krajnji rok
za dostavljanje rešenja je sreda, 22. maj, do 24.00h ˝ 5 min :) Vreme
kada je zadatak poslat ne utiče na plasman.
Autor najboljeg rešenja dobija tromesečnu pretplatu na SezamNet i
večnu slavu :)
algoritmi.136dzakic,
U sredu, 22. maja, u 24h istekao je rok za predaju rešenja zadatka
iz vanrednog kola takmičenja u programiranju.
Da se najpre podsetimo zadatka: Od standardnog seta domina, napravljen
je pravougaonik dimenzija 7 x 8. Trebalo je napisati program koji će
naći sve moguće rasporede domina kojima se može dobiti zadati raspored
"tačkica".
Red je i da otkrijemo poreklo ovog zadatka: Međunarodno takmičenje
u programiranju (ACM) u okviru kojeg je odigran i čuveni meč Kasparov
protiv Deep Blue računara. Dakle, zadatak nije bio nimalo naivan, tako
da ne treba da čudi što je samo 5 rešavača uspelo da izađe na kraj sa
njim! Doduše, naši učesnici su u takmičenju su bili u "nešto" boljem
položaju jer su za zadatak za koji je predviđeno da se rešava najviše
par sati, imali tri dana.
Od 5 pristiglih rešenja, 4 su potpuno tačna, dok jedan program na našem
referentnom testu, na kome je trebalo pronaći 90 rasporeda, nije našao
sva rešenja (doduše ona koja je našao bila su tačna). Očigledno da je
autor imao rešenje "u šaci" ali izgleda da je prevideo neke sitnice :)
U svakom slučaju zaslužuje pohvalu...
Uslovi su bili vrlo "liberalni", tako da smo ostavili potpunu slobodu
u izboru programskog jezika, a kriterijum za rangiranje je bila brzina
nalaženja (svih) rešenja. Moramo priznati da smo i pored ovoga očekivali
uglavnom rešenja na C-u ili Pascalu, eventualno Fortranu, obzirom da je
u pitanju bio rad sa matricama. Međutim, bilo je i iznenađenja...
Moramo napomenuti da su svi programi pronalazili rešenja "munjevito"
tako da je bilo vrlo nezahvalno naći najbrži program. U rešenjima su
se mogle videti svakojake dosetke i optimizacije, ali jedan korisnik
je otišao korak dalje, pa je uzeo "stvar u svoje ruke" ;) i napisao
program u asembleru!
Očigledno je da su optimizacije kompajlera dostigle zavidan nivo, ali
vešt asembleraš će, naravno uz kvalitetan algoritam, napraviti čudo.
Zbog toga, zasluženu pobedu ovoga puta odnosi Boris Daljević (biber)
čiji je program pronalazio rešenja za red veličine brže od svojih
konkurenata. Očigledno je da sledeći put moramo malo "skresati" izbor
alata na više programske jezike, pošto nam je primarni cilj bio da
pobedi najbolji algoritam a ne najbolja optimizacija. Međutim Borisova
pobeda je čista kao suza, jer je on imao i vrlo efikasan algoritam,
koji je ručno optimizovao, za šta je, priznaćete, potrebno izuzetno
znanje i trud (pogledajte kako izgleda učitati matricu u asembleru!)
Pored njega, skrenuli bismo pažnju na program Vinka Marinkovića koji
je, rekli bismo, "najelegantniji" od svih pristiglih, a i vicešampion
u brzini! Svi ispravni programi, u izvornom kodu, nalaze se u arhivi
uz poruku.
Na kraju da damo spisak programera koji su ukrstili koplja oko ovog
problema. (u zagradi je dat indeks koji odslikava odnose brzina
nalaženja rešenja). Programi su testirani na "golom" računaru sa RAM
diskom gde je mereno za koje vreme pronalaze potrebnih 90 rasporeda
domina.
Na našem referentom računaru postigli su sledeće indekse brzine
(poređenja radi, "prazan" C program ima indeks 100):
1. Boris Daljević (biber) 236
2. Vinko Marinković (vinkom) 1335
3. Miloš Hrkić (mhrkic) 2420
4. Milan Blagojević (embe) 3537
5. Vladimir Stojanović (deimos) (Nije pronašao sva rešenja)
Pobedniku čestitke i nagrada, a ostalima više sreće u narednom
(redovnom) kolu, koje će biti već u nedelju! Zadatke ponovo postavlja
galimpic.
P.S. Da ne bude sve ozbiljno pobrinuo se i jedan naš stari korisnik
koga ipak nećemo pomenuti (sigurni smo da se šalio ;). Poruku prenosimo
u celini:
----
ja sam rešijo zadatak,ali neznam kako da ga posaljem,jer je sve na
papiri\u,neznam ni jedan programski jezik,ali sam veoma pametan,pa
sam ga resijo usmeno.ako je ikako moguce,ja cu da dodjem da ti
objasnim kako se radi,a vi da mi date nagradu.tata mi kaze da treba
to da naplatim,ali ovaj put to poklanjam NAJBOLJEM BBSU NA
SVETU!!!!?!???!!!!!! NABOLJI STE!!!! JESTEEEEEEEEE!!!!!! POGOTOVU
CHAT!!!!!
.S
exit
save
Ctrl-Z Kraj
Ctrl-O Pomoć
,
domine.zipalgoritmi.137zvezdan,
>> Očigledno je da sledeći put moramo malo "skresati" izbor
>> alata na više programske jezike
Mislim da ovo ne bi bilo fer prema onima koji, kao pobednik
ovog kruga takmičenja, programiraju na asembleru. Nije biber
kriv što je njegov program drastično brži u odnosu na ostala
rešenja. Čovek se ispraksovao na Spectrum-u gde nije ni mogao
da razmišlja o C-u, a ne kao mnogi koji danas odmah u startu
počinju da rade sa Visual C++ od 650 MB CD-a.
algoritmi.138embe,
Hteo bih da cestitam vinkom-u, mhrkic-u (i deimos-u). Pobedniku
biber-u se iskreno divim. Moram priznati da sam se nadao pobedi (ne
bih ni ucestvovao da nisam), ali bolji su pobedili.
Samo cu malo iskomentarisati takmicenje (u stvari, zatraziti
dodatni komentar dzakic-a)
- Pobednika su odlucivale milisekunde. Kako je to izmereno ?
- Kojim kompajlerima su kompajlirani programi ?
- Da li mogu da se dobiju i EXE verzije programa ? (nemam
Paskal kompajler da bi to sam napravio, a neko nema C...)
> Ocigledno je da sledeci put moramo malo "skresati" izbor
> alata na vise programske jezike, posto nam je primarni cilj
> bio da pobedi najbolji algoritam a ne najbolja optimizacija.
Sto se ovoga tice, mislim da nije u redu. Ovo pokazuje da je
dzakic malo potcenio mogucnosti programera i da nije verovao da
ce neko napraviti program koji moze da uradi posao za nemerljivo
vreme (pobednicki program biber-a). Ne bi trebalo nista "skresati",
jer se time nece dobiti na objektivnosti. Mozda, pouceni ovim
iskustvom, treba izabrati takav zadatak kod koga nece biti potrebe
ili rezona da se pribegava asembleru, odnosno klasama u C++.
Svako neka radi sa onime sto voli, a vi se potrudite za ravnopravnost
takmicara, izborom pravog kriterijuma vrednovanja i pravog zadatka.
Ovo jeste bio pravi zadatak, doduse nesto tezi nego sto se ocekivalo,
ali kriterijum vrednovanja je bio nedefinisan.
Bilo je jako zanimljivo, i neka se nastavi ovo takmicenje. Jos jednom
cestitke biber-u,vinkom-u,mhrkic-u i deimos-u.
Puno pozdrava, embe
P.S. Hoce li ovo takmicenje u nedelju biti "ko-pre" ili nesto
drugo ??
algoritmi.139obren,
Pošto smo dzakic i ja zajedno testirali programe, evo "ukratko" da
dam odgovor na neka problematična pitanja. Zak će se i sam sigurno
javiti, no dobro... :)
> - Pobednika su odlucivale milisekunde. Kako je to izmereno ?
Evo kako je vršeno merenje pristiglih programa:
Napravljen je BATCH fajl sledeće sadržine:
cls
timer
%1>nul
%1>nul
...
%1>nul (10 puta)
timer
Prvo je provereno da li programi ispravno nalaze nekoliko "kratkih"
rešenja koje su svi ispravno našli.
Merenje je zatim vršeno na RAM disku, sa isključenim "turbom", na golom
računaru (samo himem.sys) u seriji od 10 merenja i uzimanjem srednje
vrednosti.
Dakle, svi izvršni programi, ulazne i izlazne datoteke sve vreme su bili
u memoriji, tako da brzina diska i video karte nije uticala na merenje.
Sadržaj datoteke DOMINE.IN koja je bila ulaz za finalno merenje je bio
sledeći:
0 1 5 5 0 5 2 2
1 6 2 4 6 3 2 5
1 4 1 3 6 3 5 3
2 4 5 4 2 6 1 0
4 5 6 4 5 1 3 4
6 0 0 0 2 3 1 1
3 0 0 2 3 4 6 6
Trebalo je da programi nađu 90 rešenja za ovaj raspored tačkica, što
su učinili svi programi osim deimos-ovog, koga je izgleda ovaj ulaz
malo zbunio.
> - Kojim kompajlerima su kompajlirani programi ?
C programi su kompajlirani pomoću Borland C v3.1 sa uključenom maksimalnom
optimizacijom i 386 instrukcijama u small memorijskom modelu. Turbo Pascal
programi su kompajlirani pomoću Borland Pascala 7.0, takođe sa maksimalnim
optimizacijama.
C programi su se nešto brže izvršavali prevedeni za OS/2 flat memorijski
model, ali je vreme izvršavanja prilično variralo tako da smo odlučili da
ipak vršimo merenja na goloj DOS mašini.
Što se tiče .EXE programa, biće okačeni koliko sutra (ne zovem od kuće).
Pozdrav, Dragan
algoritmi.140dzakic,
> > bio da pobedi najbolji algoritam a ne najbolja optimizacija.
> Sto se ovoga tice, mislim da nije u redu. Ovo pokazuje da je
> dzakic malo potcenio mogucnosti programera i da nije verovao da
> ce neko napraviti program koji moze da uradi posao za nemerljivo
> vreme (pobednicki program biber-a).
Upravo tako :) Našli smo interesantan zadatak koji, priznaćete, ako
se rešava 'grubom silom' radi zaista dugo. Osnovna ideja je naravno
odbaciti što je više moguće potencijalnih rešenja tokom pretrage kako
bi se i vreme izvršavanja svelo na minimum. Priznajem da nisam imao
mnogo vremena da posvetim zadatku, a cela ideja sa takmičenjem u
programiranju mi se svidela, pa smo odlučili da problem postavimo
ovde. Kriterijum je u osnovi trebalo da bude najbolja ideja,
algoritam, ali smo bili svesni da se to teško može objektivno
proceniti pa je zato tako i formulisan (nakraće vreme izvršavanja).
Sva primljena rešenja zaista su prijatno iznenadila, posebno rešenje u
asembleru. Meni lično je drago da je neko posvetio vreme asemblerskom
rešavanju ovog zadatka, jer znam koliko je potrebno uložiti truda -
čak više na obradu ulaza i izlaza nego na realizaciju samog algoritma.
Ali, kao što rekosmo, biberova pobeda je čista kao suza i sa moje
strane sve čestitke.
> Mozda, pouceni ovim iskustvom, treba izabrati takav zadatak kod koga
> nece biti potrebe ili rezona da se pribegava asembleru, odnosno
> klasama u C++.
Naravno, samo treba naći takav zadatak. Ako imate predloge kako
propozicijama definisati što ravnopravnije uslove rešavanja, bilo bi
lepo da ih čujemo. I ovim vanrednim zadatkom proverili smo u praksi
koliko propozicija utiču na ishod. Nadam se da smo bliže onome što
želimo da postignemo.
> P.S. Hoce li ovo takmicenje u nedelju biti "ko-pre" ili nesto
> drugo ??
Propozicije narednog takmičenja objaviće galimpić, dakle nastavak
prepuštamo moderatoru.
Pozdrav, Zak
algoritmi.141biber,
>> ostala resenja. Covek se ispraksovao na Spectrum-u gde nije ni mogao
Ipak je to bilo na Commodore 64 (uglavnom).
algoritmi.142galimpic,
**********************************
** TAKMIČENJE U PROGRAMIRANJU **
**********************************
Pripremite se za drugo, redovno kolo u nedelju u 12.00h. Propozicije su u
poruci 1.59.
algoritmi.143biber,
>> Svako neka radi sa onime sto voli, a vi se potrudite za ravnopravnost
E ova ti je na mestu! :)
algoritmi.144obren,
Evo prevedenih programa koji su učestvovali na takmičenju...
EMBE.EXE (BC 3.1)
MHRKIC.EXE (BP 7.0)
VINKOM.EXE (BP 7.0)
BIBER.COM (A86 v3.22)
U arhivi je i ulazna datoteka DOMINE.IN
dominexe.zipalgoritmi.145galimpic,
*******************************************
TAKMIČENJE U PROGRAMIRANJU - Zadatak broj 2
*******************************************
Napraviti program koji za zadati broj prstenova rešava problem "Hanojskih
kula" koji se sastoji u sledećem:
Postoje tri stuba: A, B i C. Na Stubu A nalazi se zadati broj prstenova
naslaganih prema veličini: prsten sa najvećim prečnikom nalazi se na dnu,
a sa najmanjim na vrhu gomile. Cilj je prebaciti sve prstenove u istom
rasporedu na prsten B, poštujući sledeća pravila:
1. U jednom potezu se može prebaciti samo jedan prsten sa vrha jednog na
vrh drugog stuba.
2. U svakom trenutku na svakom stubu prstenovi moraju biti raspoređeni prema
prečniku, tako da je najveći na dnu a najmanji na vrhu.
Ulazne veličine: broj prstenova
Izlazne veličine: tekstualni fajl POTEZI.TXT sledećeg sadržaja:
- U prvom redu je zadati broj prstenova
- Slede potezi oblika XY, u značenju sa stuba X na stub Y
svaki potez u posebnom redu
- U poslednjem redu nalazi se ukupan broj poteza.
PRIMER:
c:\>HANOJ.EXE
Unesi broj prstenova: 3
c:\>TYPE POTEZI.TXT
3
AB
AC
BC
AB
CA
CB
AB
7
c:\>_
Zamišljeni početni izgled hanojske kule sa tri prstena:
| | |
=== | |
===== | |
======= | |
-------------------------------
A B C
Zamišljeni završni izgled hanojske kule sa tri prstena:
| | |
| === |
| ===== |
| ======= |
-------------------------------
A B C
Uz zadatak je dat program koji proverava ispravnost fajla POTEZI.EXE
Rešenja šaljite u obliku izvršnih DOS fajlova prikačenih uz poruku koja
je odgovor na ovu poruku. Za detaljnije propozicije pogledajte poruku 1.59.
provera.exealgoritmi.146galimpic,
Pošto sam kasnio 1 minut sa postavljanjem zadatka, za kaznu vam evo i
rešenja. Jedini problem je što morate da provalite šifru ;)
resenje.zipalgoritmi.147galimpic,
Ko radi, taj i greši. U postavci piše:
> Uz zadatak je dat program koji proverava ispravnost fajla POTEZI.EXE
Treba, naravno, POTEZI.TXT
algoritmi.148vinkom,
Evo da probamo
hkule.exealgoritmi.149galimpic,
****
STOP
****
vinkom je uspeo iz prve! Prvo da vidimo da li ima zalbi, pa mozemo malo da
popricamo o resenju.
algoritmi.151deimos,
>> 1.145 PCPROG.6:algoritmi
>> galimpic, 26.05.96. 12:01, 1849 chr
>> 1.148 PCPROG.6:algoritmi
>> vinkom, 26.05.96. 13:21, 16 chr
Time difference 1h 20min
Ja lepo govorih da su propozicije krajnje ne-fer, ali niko
me ne slusa. Ajde ti meni lepo reci u cemu je poenta takcmicenja? Zar
mislis da ce ovo takmicenje zaziveti pored ovakvih pravila? A i zadatak
je 'ubi boze' (za takmicenje u programiranju osnovaca za kvalifikacije
na opstinsko takmicenje, a cak je i laksi od iks-oks za koji smo vec
konstatovali da je prelak). Ako je bilo ljudi koji su uspeli da rese zadatak
sa medjunarodnog takmicenja (ne racunam sebe) i to na vec poznat nacin,
krajnje je glupo postavljati ovako lak zadatak. Daj lepo ko covek ozbiljan
zadatak i ceni zadatak po kvalitetu, a ne po brzini pristizanja resenja
(dzakicev kriterijum je bio odlican). Ja se logovao specijalno da vidim
zadatak, kad, eto tamo i resenja... i to iz prve.
Ako se nismo razumeli, ovo sto kazem je dobronamerno, jer meni je
stalo do takmicenja, i zato ti ovo i govorim, a da mi je sve jedno ili da
mi je samo malo manje stalo do njega, ovo ne bih ni napisao, vec bi
jednostavno ignorisao poruke koje se ticu takmicenja i ne bih vise ni
pokusavao da resim zadatak (ako se ovakva pravila nastave, kroz par kola
ce to biti slucaj sa vecinom, jer znaju da ako je neko slucajno dobio
vezu 1min pre njega, prakticno nema sanse da na vreme posalje resenje).
A i krajnje je vreme da se otvori tema za takmicenje, jer je u ovoj
temi konferencije vecina poruka u vezi istog, a za _algoritme_ prakticno
nema mesta od diskusije. I jos jedna stvar, da me ostali ne bi
preduhitrili konstatacijom - nije pitanje ko ce pobediti, vec je pitanje
duha celog takmicenja, njegovog kvaliteta, zdrave konkurencije i fer
pravila.
Zao mi je, ali sam morao na ovako drastican nacin da dam svoje
misljenje, jer pored onolike diskusije o pravilima, nisi nasao ni jedan
valjan razlog da ucinis neki kompromis, a mislim da je bilo dosta razloga
za to, jer se jako malo ljudi u potpunosti slozilo za navedenim
propozicijama i tezinom zadataka.
.dEiMoS.
algoritmi.152embe,
>> Kriterijum je u osnovi trebalo da bude najbolja ideja,
>>algoritam, ali smo bili svesni da se to tesko moze objektivno
>>proceniti pa je zato tako i formulisan (nakrace vreme izvrsavanja).
S obzirom na nacin testiranja programa to niste mogli. Ako je
najposteniji kriterijum najefikasniji algoritam, a tu se mislim
svi slazemo, onda je testiranje moralo biti drugacije.
Naime, pustajuci moj program kroz Profiler, dosao sam do jednog
podatka: Vreme potrebno za ulaz i izlaz iznosi: 98.6% (rad sa diskom
i konzolom) i 96.1% (ako je u pitanju ram-disk, i bez konzole) ukupnog
vremena izvrsavanja programa. Na prvi pogled razlika je previse mala,
a ocigledan je dobitak na brzini (oko 2-3x za ovaj program) ?
Odgovor je prost, dva su razloga za to:
1. enormno ucesce rada sa periferijama,
2. sam program se brze ucitava u memoriju i spreman je za
ivrsavanje (oko 6x za program ove velicine, na mom racunaru)
Pri ovome treba razbiti zabludu da ce rad sa periferijama biti
brzi onoliko puta koliko je memorija brza od diska ! To vazi
samo za ulaz i izlaz VELIKE kolicine podataka i malo poziva.
Za malu kolicinu podataka i vise pozivanja ulaza i izlaza taj
dobitak je mnooogo manji.
Zakljucak je sledeci:
Bez obzira na izvrsavanje programa sa ram-diska, uticaj rada sa
periferijama je bio preko 90% na vreme izvrsavanja programa.
Ovo se odnosi kako na program pisan u C++ tako i na dva programa
pisana u Paskalu. Kod programa pisanog u asembleru to nije slucaj.
Ispada, a vi me ispravite ako gresim, da su poredak odlucile
brzine sledecih naredbi :
- otvaranje i zatvaranje fajla
- citanje i pisanje po fajlu
- ispis na konzolu
a koje smo bili prinudjeni da koristimo. Vreme izvrsavanja
algoritma uopste nije tretirano!
KAKO TESTIRATI (predlog)
Videli ste da svi programi rade jako brzo. Onda se moralo pristupiti
testiranju tacnosti. Pustiti 2,3,10.. primera, i uveriti se u to.
E sad, dolazi ono najvaznije. Nije mi jasno kako i vi o tome niste
razmisljali. Svaki program se sastojao od dela za ulaz-izlaz i
samog algoritma. Definisete ulazne podatke u samom programu,
pozovete algoritam 1000.... puta, (bez ulaza-izlaza) i razresite sve
dileme o efikasnosti algoritma. Intervenciju biste mogli sasvim lako
izvrsiti, za 3 minuta programerskog posla po programu. Tada biste
mogli reci taj i taj algoritam je najbrzi. Mislim da bi to bilo
korektno.
>>Naravno, samo treba naci takav zadatak. Ako imate predloge kako
>>propozicijama definisati sto ravnopravnije uslove resavanja, bilo bi
>>lepo da ih cujemo.
Propozicije treba da budu : najtacniji, najbrzi, najelegantniji
(bas ovim redosledom) ALGORITMI (kao sto se zove konferencija),
pa bilo oni pisani u Fortranu, Bejziku ili asembleru, svi moraju
biti ravnopravni. To vas obavezuje na pronalazenje metoda za
testiranje ALGORITAMA - iskljucivo. A takmicarima treba dati
uslov da napisu program tako, da algoritam bude jedna kompaktna
celina, koju vi mozete lako upotrebiti za testiranje.
Bio sam opsiran, ali trazili ste predloge.
Pozdrav EMBE
P.S. Jos jednom, sve cestitke pobedniku biberu.
algoritmi.153embe,
>>krajnje je glupo postavljati ovako lak zadatak. Daj lepo ko covek ozbiljan
>>zadatak i ceni zadatak po kvalitetu, a ne po brzini pristizanja resenja
>>(dzakicev kriterijum je bio odlican). Ja se logovao specijalno da vidim
Potpuno si u pravu da je zadatak bio prelak. Ipak, svaka cast vinkomu
na brzini. I ja sam resavao zadatak ali sam ga resio sa cetrdeset minuta
zakasnjenja. Bio je laksi nego IKS-OKS jer je ovde bila u pitanju
jedna obicna rekurzija i NISTA vise. Ko je krenuo na pravu stranu,
mogao je zadatak da resi za otprilike sedam minuta.
Ipak je dzakicev zadatak bio primereniji takmicenju. Najveci
problem lezi na organizatoru takmicenja da izabere pravi zadatak.
Mozda treba oformiti konzilijum za izbor i sastavljanje zadataka?
Pozdrav, EMBE
algoritmi.154mmarkovic,
> Potpuno si u pravu da je zadatak bio prelak. Ipak, svaka cast
> vinkomu na brzini. I ja sam resavao zadatak ali sam ga resio sa
> cetrdeset minuta zakasnjenja. Bio je laksi nego IKS-OKS jer je
> ovde bila u pitanju jedna obicna rekurzija i NISTA vise. Ko je
Nisam učesnik, više navijač;)
Algoritam za Hanojske kule je veoma poznat. Ko je imao QL-a i na
njemu Computer One Pascal, imao je kule kao primer sa čak grafički
prikazanim rešenjem ( animacija prebacivanja prstenova ).
Iako se slažem da je zadatak čak i lakši nego IKS-OKS ( uz poznavanje
problema ili "nanjušivanje" rekurzije ), čini mi se da je ipak bolje
izabran.
Jedino mi se zaista ne sviđa sistem "ko prvi". Kažu stari ljudi,
"na brzinu se samo muve love" :)
Ovako, prvo besomučno kucate, a zatim besomučno zovete...
P.S. U svakom slučaju, čestitke pobednicima i učesnicima u sva tri kruga
algoritmi.155galimpic,
Moje rešenje koje je kao šifrovani ZIP fajl okačeno uz poruku 1.146 može
se (posle skidanja) raspakovati komandom pkunzip resenje.zip -showdoyoudo
Kao što su neki primetili, zadatak je bio lak, ali je algoritam za njegovo
rešavanje zaista elegantan. Čudi me da je bilo potrebno i toliko vremena
(1h i 20min) da neko pošalje odgovor.
algoritmi.156galimpic,
Re: kritike propozicija takmičenja
Gospodo, u pravu ste. Žalim što nisam odmah uvažio vaše mišljenje, ali
sam smatrao da bi trebalo da prođe više od jednog kola za konačnu ocenu
usvojenih pravila. Posle prvog zadatka mišljenja su bila podeljena,
ali je sada jasno da sve mora da se menja iz korena.
Od sada važe sledeće propozicije:
- Zadatak se i dalje postavlja poslednje nedelje u mesecu, tačmo u podne.
Sistemskih obaveštenja više neće biti, ali će biti ostavljena najava u
temi algoritmi.
- Rešenja se dostavljaju kao mail korisniku "zadaci", u obliku razumno
komentarisanog sorsa (isključivo BASIC, C, C++ ili Pascal) i izvršnog fajla,
sa napomenom o vremenu izvršavanja i konfiguraciji na kojoj je postignuto.
- Krajnji rok za slanje rešenja je ponedeljak u ponoć (36 sati kasnije).
- Kriterijum za ocenjivanje je sledeći: uzimaju se u obzir samo potpuno
tačna rešenja u okviru kojih pobeđuje najkvalitetniji algoritam po
subjektivnom utisku organizatora - moje malenkosti. Ako postoji više
sličnih rešenja, pobednika određuje brzina izvršavanja. Nagrada za sada
ostaje ista - mesec dana pretplate.
- Rezultati, sa svim rešenjima i komentarom objavljuju se u utorak popodne.
Napomene:
* Videću sa upravom da li možemo da pređemo na nedeljni umesto mesečnog
režima, s obzirom na nagradu.
* Mislim da je izbor jezika dovoljan, jer obuhvataju najveći procenat
programera. Mogu se naći pogođeni neki koji koriste Modulu-2, FORTRAN
i slično, ali mislim da takvih i nema ovde, a iskomplikovalo bi celu
situaciju. Asembler moram da izbacim iz konkurencije jer ovo od sada
praktično postaje takmičenje algoritama, a asembler jednostavno nije
zgodan za implementiranje algoritama, još manje za analizu i poređenje
sa jezicima opšte namene.
* Shodno ovim pravilima, zadaci će biti nešto teži, a dobro bi bilo da se
posle povede rasprava o kvalitetu pojedinih rešenja, kako bismo najzad
smanjili šum i opravdali naziv teme koju koristimo. Ipak, subjektivna
odluka (koja će biti maksimalno moguće objektivna) o pobedniku je konačna.
Pretpostavljam da se nekima ni ovo neće svideti, pa da vas čujemo.
algoritmi.157space.ace,
--> Ja lepo govorih da su propozicije krajnje ne-fer, ali niko
--> me ne slusa. Ajde ti meni lepo reci u cemu je poenta takcmicenja?
--> Zar
Potpisujem sve rečeno. Krajnje ne-fer!!!!
SPA
algoritmi.158obren,
> KAKO TESTIRATI (predlog)
> Videli ste da svi programi rade jako brzo. Onda se moralo pristupiti
> testiranju tacnosti. Pustiti 2,3,10.. primera, i uveriti se u to.
> E sad, dolazi ono najvaznije. Nije mi jasno kako i vi o tome niste
> razmisljali. Svaki program se sastojao od dela za ulaz-izlaz i
> samog algoritma. Definisete ulazne podatke u samom programu,
> pozovete algoritam 1000.... puta, (bez ulaza-izlaza) i razresite sve
> dileme o efikasnosti algoritma. Intervenciju biste mogli sasvim lako
> izvrsiti, za 3 minuta programerskog posla po programu. Tada biste
> mogli reci taj i taj algoritam je najbrzi. Mislim da bi to bilo
> korektno.
Hmm, meni je recimo ta ideja izuzetno odbojna. Kao prvo, to je
neovlašćeno intervenisanje po tuđem kôdu (ja ne bih dozvolio da mi neko
prepravlja program da bi "merio brzinu"), a drugo, ko zna kako sve mogu
biti napisani programi koji ˙rade˙ tačno! Tu se (verovatno) niko sem
autora ne bi snašao...
Oko vrednovanja prethodnog zadatka (domine) možda je bilo nekih propusta
ali to je tek drugo kolo i treba utabati stazu.
Mislim da je najbolja varijanta u slučaju vrlo bliskih rezultata na
objektivnim testovima (tačnost i brzina), biranje najelegantnijeg rešenja.
Na kraju krajeva, treba dati prednost onome ko piše jase, "lepe" i lako
čitljive progame. Svi će kad tad doći u situaciju da treba da održavaju
tuđi kôd, i tada će znati da cene trud uložen u pregledan i elegantan
program. Sudeći po tvom rezimeu, ti bi to trebao najbolje da znaš.
Problem kod ovog pristupa (elegancija rešenja) je subjektivnost, ali
treba razmotriti ideju da i sami učesnici odlučuju u izboru pobednika?
Takođe, mislim da rešenja treba da budu u izvornom kodu a ne .EXE,
i da treba ograničiti jezike na jezike "najšire populacije" a to su
C/C++, Pascal i BASIC. Čak i oni koji inače upotrebljavaju druge alate
(Modula 2, Fortran i sl.) sigurno znaju i neki od navedenih jezika, a
teško da će zadaci biti takvi da ih ovo jezici sputavaju da se izraze.
Što se tiče asemblera, definitivno sam protiv njega u ovoj temi. Cilj
ovog takmičenja (nadam se) nije materijalna korist, već da se razmrdaju
vijuge, nešto nauči i stekne iskustvo. Mislim da je asembler prevaziđen
u današnje vreme, naročiti za ovakve primene, a i kako će recimo vlasnik
Amige ili Atarija naučiti bilo šta iz ASM sorsa za PC (i obratno)?
Pozdrav, Dragan
algoritmi.159ognjen,
)-> dileme o efikasnosti algoritma. Intervenciju biste mogli
)-> sasvim lako izvrsiti, za 3 minuta programerskog posla po
)-> programu. Tada biste mogli reci taj i taj algoritam je
)-> najbrzi.
Ne, ne i ne. Da si malo vise gledao izvorne kodove razlicitih
programera, shvatio bi da to nije ni malo lako. Nekad su
potrebni _sati_ da bi neko sa strane provalio kako algoritam
radi. Zato se na svim svetskim olimpijadama i takmicenjima ne
meri lepota samo glavnog algoritma, vec samo celokupna brzina
programa u celini.
algoritmi.160ognjen,
)-> tacna resenja u okviru kojih pobeduje najkvalitetniji
)-> algoritam po subjektivnom utisku organizatora - moje
)-> malenkosti.
Sta znaci najkvalititniji algoritam, po tvom misljenju,
naravno? Najbrzi? Najelegantniji? Najcistiji?
algoritmi.161embe,
Ja>>> dileme o efikasnosti algoritma. Intervenciju biste mogli sasvim lako
Ja>>> izvrsiti, za 3 minuta programerskog posla po programu. Tada biste
>>Hmm, meni je recimo ta ideja izuzetno odbojna. Kao prvo, to je
>>neovlasceno intervenisanje po tudem kôdu (ja ne bih dozvolio da mi neko
>>prepravlja program da bi "merio brzinu"), a drugo, ko zna kako sve mogu
>>biti napisani programi koji ˙rade˙ tacno! Tu se (verovatno) niko sem
>>autora ne bi snasao...
Ni meni samom se ne svidja da neko drugi vrsi izmene u kôdu, ali jos
manje mi se svidja ideja o pausalnom ocenjivanju vrednosti algoritma
na osnovu brzine CELOG programa. To bi bilo, kao kada bi se kvalitet
jednog automobila merio potrosnjom goriva , ili njegovom brzinom, a
ne izradom ili kvalitetom njegovih delova.
Zato sam, u daljem tekstu mog komentara i bio napisao da program
mora da bude tako napisan da algoritam bude kompaktna celina
koja se moze zasebno analizirati. Jedna od analiza je i logicka
analiza algoritma, ali po potrebi (vise dobrih resenja) mora se
omoguciti i "testiranje motora na stolu", sto bi izuzetno lako
moglo da se resi od strane takmicara, sa par #define -a u C-u,
a za ostale jezike je verovatno isto tako jednostavno.
Opet napominjem, sve se ovo odnosi na uporedjivanje kvaliteta
priblizno dobrih algoritama, znaci, kada logicka analiza ne moze
pouzdano da odgovori na pitanje ko je najkvalitetniji?
>>citljive progame. Svi ce kad tad doci u situaciju da treba da odrzavaju
>>tudi kôd, i tada ce znati da cene trud ulozen u pregledan i elegantan
>>program. Sudeci po tvom rezimeu, ti bi to trebao najbolje da znas.
Naravno, makar i po cenu "smanjene" brzine, uvek, UVEK, se mora
pisati pregledan kôd.
Pozdrav, EMBE
algoritmi.162embe,
> Resenja se dostavljaju kao mail korisniku "zadaci", u obliku razumno
> komentarisanog sorsa (iskljucivo BASIC, C, C++ ili Pascal) i izvrsnog fajla,
> sa napomenom o vremenu izvrsavanja i konfiguraciji na kojoj je postignuto.
Opet ce se meriti brzina ? Onda se potrudite da razlika izmedju prvog
i poslednjeg bude veca od jedne milisekunde. :)) (naravno izborom
zadatka)
>> Videcu sa upravom da li mozemo da predemo na nedeljni umesto
>> mesecnog rezima, s obzirom na nagradu.
Mislim da bi jednom u DVE nedelje bilo sasvim dobro, jer:
- imace se dovoljno vremena za pronalazenje prigodnih zadataka.
- ako bude nedeljno, jos uvek ce trajati diskusija o prethodnom
a vec ce se zadavati novi.
- je dovoljno cesto.
Pozdrav, EMBE
algoritmi.163nenad,
> manje mi se svidja ideja o pausalnom ocenjivanju vrednosti algoritma
> na osnovu brzine CELOG programa.
Ako se ne varam zadatak je uključivao i čitanje i pisanje
datoteke, kao i ispisivanje na konzolu. Jeste veći deo toga lakše
izvesti u C-u nego u ASM-u, jeste lakše i "čistije" uraditi posao
sa funkcijama nego sa jednom jedinom 'main' funkcijom i svim
globalnim promenljivama (da ne govorimo o definisanju klasa i
objektima), ali zato se mora platiti cena: startup kod,
inicijalizacije, pozivanje funkcija, stek - uz pretpostavku da je
kompajler savršen...
Cilj je bio najbrži program, biber je napravio najbrži
program. Napomenuo bih i da su prevodioci bili podešeni tako da
generišu 386 kod, dok je biber-ov program bio (ako se ne varam)
za XT. :)
Jedni se bune što može ASM, drugi što neće ubuduće moći... Kako
li bi tek naoštreni bili učesnici da je žiri rekao da je merio
tako što je modifikovao programe zarad merenja... :)
algoritmi.164deimos,
Sva nova pravila su ok, osim jednog:
>>- Kriterijum za ocenjivanje je sledeci: uzimaju se u obzir samo potpuno
>> tacna resenja u okviru kojih pobeduje najkvalitetniji algoritam po
>> subjektivnom utisku organizatora - moje malenkosti. Ako postoji vise
>> slicnih resenja, pobednika odreduje brzina izvrsavanja. Nagrada za sada
Algoritam je bolji ako je brzi, zar ne ? Kriterijum ti je
diskutabilan. Uzmi na primer sledeci kriterijum:
Ucestvuje npr. 38 takmicara. Najbrzi algoritam dobija 38 poena,
drugi 37... i tako dalje. Na te poene ti dodaj svojih 38/4, 38/5 i 38/6
poena po subjektivnom misljenju. Krajnji zbir odlucuje pobednika.
Predlozio bih takodje i jednu malu konvenciju, kako bi se izbeglo
pri testu merenje 'nebitnog' dela koda (dakle, onoga koji nije u
direktnoj vezi sa algoritmom). Uz pomoc jednog malog C hedera koji sadrzi
precizan tajmer (1/18.2 sec) i koji se lako konvertuje u Pascal, a ciji
prototip prilazem uz poruku, program bi mogao da izgleda ovako:
void main(void)
{
...
StartTimer():
Algoritam()
StopTimer();
printf("Vreme izvrsenja: %d",ElapsedTime());
...
}
Eto, nemam vise zameki :) A sto se tice cesceg takmicenja, delim
misljenje embea da bi bilo najlepse da ide na svake dve nedelje.
.dEiMoS.
timer.halgoritmi.165galimpic,
> Opet ce se meriti brzina ? Onda se potrudite da razlika izmedju prvog
> i poslednjeg bude veca od jedne milisekunde. :)) (naravno izborom
> zadatka)
Zahtev da se navede brzina je majušni problem za takmičara, a
velika pomoć za mene da ne lupam glavu da li se program zaglavio
ili treba da čekam XXX sekundi da se završi. To je u pitanju.
algoritmi.166galimpic,
> Sta znaci najkvalititniji algoritam, po tvom misljenju,
> naravno? Najbrzi? Najelegantniji? Najcistiji?
Zavisi od problema. U principu, onaj koji ima najbolju mešavinu
elegancije, brzine, efikasnosti i ostalih parametara. Kao i
u književnoj kritici, na primer, ocena je subjektivna.
algoritmi.167biber,
>> samog algoritma. Definisete ulazne podatke u samom programu,
>> pozovete algoritam 1000.... puta, (bez ulaza-izlaza) i razresite sve
>> dileme o efikasnosti algoritma. Intervenciju biste mogli sasvim lako
>> izvrsiti, za 3 minuta programerskog posla po programu. Tada biste
Hajde uradi to ako te ne mrzi, i okaci rezultate ovde.
Znatizeljan sam.
algoritmi.168galimpic,
************************************
TAKMIČENJE U PROGRAMIRANJU - 3. KOLO
************************************
Tačno u podne, u nedelju, 9. juna 1996. u temi "algoritmi" biće postavljen
nagradni zadatak. Rešenja se šalju isključivo kao mail korisniku "zadaci"
najkasnije do ponedeljka, 10. juna u ponoć (36 sati posle postavke).
Rešenje treba da bude u obliku izvornog i izvršnog koda koji su kao fajlovi
prikačeni uz mail poruku. U obzir dolaze samo BASIC, Pascal, C i C++.
Najbolji program, po mišljenju moderatora dobija prvu nagradu - mesec dana
gratis pretplate na SezamNet. Rezultati u utorak popodne.
Srećno!
algoritmi.169boko,
e jel zna neko opis TIF formata, i to nekompresovanog ?
cini mi se da ima heder od 200-tinak byte-ova, pa ide raw slika ?
algoritmi.170galimpic,
*******************************************
TAKMIČENJE U PROGRAMIRANJU - ZADATAK BROJ 3
*******************************************
Dat je crtež u ravni sastavljen od više tačaka povezanih pravim linijama.
Odrediti putanju kojom se crtež može nacrtati kontinuirano, bez prekida
u putanji i prelaženja više puta preko iste linije.
Ulaz je tekstualna datoteka ULAZ.TXT sledećeg sadržaja:
1. U prvom redu dat je ukupan broj tačaka - T (T>1)
2. U sledećih 2*T redova slede parovi X i Y koordinata svih tačaka redom
(X i Y su prirodni brojevi)
3. Sledi broj linija kojima su povezane tačke - L
4. U sledećih 2*L redova slede redni brojevi parova tačaka koje su povezane,
pri čemu su tačke numerisane po redosledu kojim su zadate
Pretpostavlja se da će postavka uvek biti pravilna: nema dve tačke sa istim
koordinatama, nijedna tačka ne ostaje izolovana niti se ijedna linija
ponavlja. Međutim, redosled zadavanja tačaka i linija ne mora biti ni na koji
način sortiran.
Izlaz je JEDNO rešenje u obliku tekstualne datoteke IZLAZ.TXT u kojoj je
navedena putanja po kojoj treba ići, u obliku rednih brojeva tačaka, svaka
u posebnom redu. U slučaju da rešenje ne postoji, umesto izlazne datoteke na
ekranu se izdaje obaveštenje o tome.
Rešenja slati kao mail korisniku "zadaci". najkasnije do 10.06. u 24h.
Uz poruku okačiti fajl sa izvornim i izvršnim kodom.
PRIMER KOMENTAR
------ --------
C:\>TYPE ULAZ.TXT
5 ;ima 5 tačaka
1 ;X1
1 ;Y1
3 ;X2
1 ;Y2 itd
3
4
1
2
2
2
6 ;ima 6 linija
1 ;1. linija spaja tacke 1...
2 ;...i 2
3 ;2. linija spaja tacke 3...
5 ;...i 5 itd
4
1
1
5 4| 3
2 | /
5 3| /
4 | /
5 2| 4---5
C:\>RESI.EXE | | / \
C:\>TYPE IZLAZ.TXT 1| 1-------2
3 |___________
5 1 2 3
2
1
5
4
1
C:\>_
algoritmi.171boko,
BO■>e jel zna neko opis TIF formata, i to nekompresovanog ?
BO■>cini mi se da ima heder od 200-tinak byte-ova, pa ide raw slika ?
e nadjeno...
\dos\info\tiff-50.zip :)
algoritmi.172biber,
>> e jel zna neko opis TIF formata, i to nekompresovanog ?
Postoji opis i TIF i GIF formata u sezamovim direktorijumima.
algoritmi.173galimpic,
********************************************
REZULTATI 3. KOLA TAKMIČENJA U PROGRAMIRANJU
********************************************
Stigla su 4 rešenja, i to od korisnika mhrkic, deimos, embe i vinkom. Na
žalost, embe je odmah diskvalifikovan jer je poslao samo .CPP fajl, a od
.EXE ni traga.
Svi korisnici su ispravno ignorisali podatke o koordinatama tačaka. Ova
zamka je bila suviše providna za Sezamovce - položaj tačaka je, naravno,
potpuno nebitan za rešenje zadatka. Ipak, deimos se potrudio pa je i
te podatke iskoristio za opciju grafičkog prikaza.
Vinkom je bio teorijski najviše potkovan: rešenje je imenovao kao Eulerov
put koji postoji samo kada je broj tačaka sa neparnim brojem veza 0 ili 2.
Iskoristio je i ostala teorijska uputstva koja se tiču nalaženja rešenja,
pa je uspeo da ostavi najbolji utisak na žiri, tj. mene :). Dakle,
*** VINKOM je pobednik i dobija mesec dana pretplate ***
Ostalim učesnicima zahvaljujem na trudu i pozivam sve da učestvuju u narednom
kolu koje će se odigrati u nedelju, 23. juna. Ako mislite da je zadatak
bio previše lak, previše težak, dosadan ili imate kakav drugi razlog ili
želite da komentarišete rešenja, tema 'algoritmi' je otvorena.
resenja.zipalgoritmi.174embe,
>>Stigla su 4 resenja, i to od korisnika mhrkic, deimos, embe i vinkom.
>>Na zalost, embe je odmah diskvalifikovan jer je poslao samo .CPP fajl, a
>>od .EXE ni traga.
To uopste nije dobar postupak prema meni, s obzirom da se pravila
menjaju iz nedelje u nedelju. Moj trud je omalovazen. Sta ce EXE ako
imate source. Sta ce source ako trazite EXE ? Ovo nije medjunarodno
takmicenje sa 1000 ucesnika. Ovo je takmicenje sa 4-5 ucesnika.
Ovakvim nelogicnim postupcima, umesto prijateljskim i kolegijalnim
pristupom nista se ne postize! Ajde da nisam poslao source, ali zato
sto nisam poslao EXE ???? JAKO sam ljut. Pa prema cemu se ocenjuje ??
Milan.
algoritmi.175galimpic,
> Ovakvim nelogicnim postupcima, umesto prijateljskim i kolegijalnim
> pristupom nista se ne postize! Ajde da nisam poslao source, ali zato
> sto nisam poslao EXE ???? JAKO sam ljut. Pa prema cemu se ocenjuje ??
Pravila su bila jasna i niko se nije bunio kada su predlozena. Bez obzira,
ionako ne bi pobedio. To sto si diskvalifikovan ne znaci da nisam obratio
paznju na tvoj program.
algoritmi.176embe,
>>Pravila su bila jasna i niko se nije bunio kada su predlozena. Bez
>>obzira,ionako ne bi pobedio. To sto si diskvalifikovan ne znaci da nisam
>>obratio paznju na tvoj program.
Uopste se ne bunim protiv pravila (sto bi neki rekli "zamenjuju se
teze"), bunim se protiv treniranja strogoce. Sta to znaci
diskvalifikovan? Zar nije moglo bez te kvalifikacije? Sto se tice
pobede, znao sam da necu da pobedim, s obzirom da sam znao da negde
postoji teoretsko objasnjenje ovog zadatka. Resio sam zadatak na
najbolji nacin sto sam u tom trenutku znao, ali sam ga ipak resio.
I sta znaci "ne znaci da nisam obratio paznju na tvoj program"?
Zasto si tu odstupio od pravila ? Zasto se uopste "obraca paznja" na
"diskvalifikovane" radove.
Vinkom-u cestitam, stvarno je resio problem na najbolji nacin,
i tu nema diskusije. Po mome misljenju, apsolutno najbolje resenje je
pobedilo, a interesantno mi je bilo to sto smo svi koristili razlicite
nacine. Zadatak je bio srednje tezine. Jedino mi je zao sto iz kola u
kolo ucestvuje isti (mali) broj ljudi. Hteo bih da znam, da li samo mi
resavamo ili resavaju i neki drugi ali ne mogu da rese? Pitam se,
pitam se?
Pozdrav, Milan.
algoritmi.177mango,
> Ovakvim nelogicnim postupcima, umesto prijateljskim i kolegijalnim
> pristupom nista se ne postize! Ajde da nisam poslao source, ali zato
> sto nisam poslao EXE ???? JAKO sam ljut. Pa prema cemu se ocenjuje ??
Covek se opravdano ljuti. Zamisli kako je kad se mucis oko nekog
zadatka par sati i onda ti zbog ovakvog necijeg postupka (mo-deratovog)
ceo trud propadne. BTW, milane, stavljaj po red razmaka izmedju citata i
odgovora.
algoritmi.178dr.grba,
>> Covek se opravdano ljuti. Zamisli kako je kad se mucis oko nekog
>> zadatka par sati i onda ti zbog ovakvog necijeg postupka (mo-deratovog)
Za mislite vi da se mučite oko nekog projekta par meseci, pa direktor
na kraju kaže "nije potrebno". E, kad to doživite, onda se upišite u
listu strelaca: ovo je "pioniri maleni" (:
algoritmi.179galimpic,
************************************
TAKMIČENJE U PROGRAMIRANJU - 4. KOLO
************************************
Tačno u podne, u nedelju, 23. juna 1996. u temi "algoritmi" biće postavljen
nagradni zadatak. Rešenja se šalju isključivo kao mail korisniku "zadaci"
najkasnije do ponedeljka, 24. juna u ponoć (36 sati posle postavke).
Rešenje treba da bude u obliku izvornog i izvršnog koda koji su kao fajlovi
prikačeni uz mail poruku. U obzir dolaze samo BASIC, Pascal, C i C++.
Najbolji program, po mišljenju moderatora dobija prvu nagradu - mesec dana
gratis pretplate na SezamNet. Rezultati u utorak popodne.
Srećno!
algoritmi.180galimpic,
*******************************************
TAKMIČENJE U PROGRAMIRANJU - ZADATAK BROJ 4
*******************************************
Ulaznom datotekom ULAZ.TXT zadat je lavirint veličine 19*19 polja. Svako polje
predstavljeno je simbolom ' ' (blanko) što predstavlja prolaz ili '*'
(zvezdica) koja označava zid. Prolazi su uvek debljine 1, a sva ivična polja
lavirinta su zidovi, osim levog polja gornjeg zida (drugog znaka u datoteci)
i desnog polja donjeg zida (predzadnji znak u datoteci, ne računajući oznaku
novog reda).
Odrediti bar jednu putanju kojom se može, pošavši od gornjeg levog ulaza
doći do izlaska iz lavirinta na suprotnoj strani. Putanja treba da bude
data kao redosled pravaca sveta (N, S, E ili W) kojima treba ići do prve
raskrsnice ili zida. Na svakom mestu prateći trenutni pravac gde se može
skrenuti i drugim pravcima ili udara u zid, potrebno je dati novu oznaku
pravca. Početni podrazumevajući pravac na jug ne treba navoditi.
Izlaz je JEDNO od rešenja u obliku tekstualne datoteke IZLAZ.TXT u kojoj je
navedena putanja po kojoj treba ići u jednom redu. U slučaju da rešenje ne
postoji, umesto izlazne datoteke na ekranu se izdaje obaveštenje o tome.
Rešenja slati kao mail korisniku "zadaci". najkasnije do 24.06. u 24h.
Uz poruku okačiti fajl sa izvornim i izvršnim kodom.
PRIMER (u postavku je ucrtana i putanja sa potezima radi jasnoće rešenja)
------
C:\>TYPE ULAZ.TXT
*|*****************
*S * * *
*|********* ***** *
*E---S* * * * *
*****|* *** *** * *
* *S * ** * *
*S---W** *
*|*** * * * **** *
*|* * **** * ** * *
*|* * * ** * *
*|* ******** ** * *
*E----S* *
******|* * * ** * *
* S-WW* * * ** * *
* *|* ********* * *
* *|* * *
* *|****** ****** *
* *E------E------S*
*****************|*
C:\>RESI.EXE
C:\>TYPE IZLAZ.TXT
SESSWSESWWSEES
C:\>_
algoritmi.181galimpic,
********************************************
REZULTATI 4. KOLA TAKMIČENJA U PROGRAMIRANJU
********************************************
Ovaj put su stigla tri rešenja, i to od korisnika embe, obren i vinkom.
Najlepše rešenje (po meni) ponudio je obren koji dobija mesec dana gratis
pretplate. Izvorni kod sva tri rešenja nalazi se u datoteci uz ovu poruku.
Pošto je već postalo simptomatično da samo nekoliko istih korisnika iz kola
u kolo učestvuje na takmičenju, moraću da najavim njegovo gašenje u slučaju
da se nešto ne promeni sledećeg puta. Zadatak će biti lakši, pa pozivam sve
Sezamovce da šalju rešenja. Vidimo se za 2 nedelje!
res4.zipalgoritmi.182obren,
> Ovaj put su stigla tri rešenja, i to od korisnika embe, obren i
> vinkom. Najlepše rešenje (po meni) ponudio je obren koji dobija
> mesec dana gratis pretplate.
Rešenje je bazirano na rekurzivnom probijanju kroz "hodnike" u sva
četiri moguća smera. Znači krene se od ulaza na jug, i proba se prolaz
na onu stranu sveta na kojoj nema zida. U slučaju da se udara u zid,
ili put može da se grana (testira se brojanjem polja bez zida oko
trenutne pozicije) pamti se marker (S-W-E-N) kao naznaka daljeg smera.
Da kažem još da sam se dvoumio između ovog rešenja i štosa sa držanjem
uz levi (desni) zid. Ipak, učinilo mi se da je ovo rešenje elegantnije
i primereno dimenziji problema.
> Pošto je već postalo simptomatično da samo nekoliko istih korisnika
> iz kola u kolo učestvuje na takmičenju, moraću da najavim njegovo
> gašenje u slučaju da se nešto ne promeni sledećeg puta. Zadatak će
> biti lakši, pa pozivam sve Sezamovce da šalju rešenja. Vidimo se za
> 2 nedelje!
Ne znam šta je razlog za mali broj učesnika, najverovatnije ispitni
rokovi, kraj školske godine, prijemni i sl. Zadaci su u zadnja dva kola
bili po mom mišljenju prilično zanimljivi za rešavanje (za razliku od
Hanojskih kula). Šteta bi bilo da se gasi... Što se tiče težine, možda
treba da postoje dve-tri kategorije zadataka? Treba dati šansu i nekim
mlađim učesnicima, za koje su možda ovi zadaci preteški...
Kao mali podstrek nastavku takmičenja, poklanjam svojih mesec dana u
fond nagrada za sledeće kolo. Znači ili neka pobednik dobije 2 meseca,
ili dva najbolja rešenja po mesec dana, svejedno.
algoritmi.183mango,
> Ovaj put su stigla tri resenja, i to od korisnika embe, obren i vinkom.
Pa naravno da su stigla 3 resenja kad si iskljucio biber-a. Inace bi
stigla cak cetiri;)
algoritmi.184hercog,
Ima li ko algoritam ili source nekog programa za pretraživanje
težinskog grafa?
Sale
algoritmi.185pedjak,
> Ima li ko algoritam ili source nekog programa za pretraživanje
> težinskog grafa?
Šta ti konkretno treba, mininalna dužina puta...?
algoritmi.186mbasta,
=> Hanojskih kula). Steta bi bilo da se gasi... Sto se tice tezine, mozda
=> treba da postoje dve-tri kategorije zadataka? Treba dati sansu i nekim
=> mladim ucesnicima, za koje su mozda ovi zadaci preteski...
I ja se slazem da ima vise kategorija zadataka (neznam bas puno o
programiranju, ali brzo ucim).
=> Kao mali podstrek nastavku takmicenja, poklanjam svojih mesec dana u
=> fond nagrada za sledece kolo. Znaci ili neka pobednik dobije 2 meseca,
=> ili dva najbolja resenja po mesec dana, svejedno.
Svaka ti cast za poklon. :) To se ceni!
P.S. Predlozio bih da se takmicenje cesce odrzava (sa laksim zadacima
naravno),a nagrade i nisu tako vazne (10 din. manje-vise).
Pozdrav, Mbasta.
algoritmi.187sasab,
> Pošto je već postalo simptomatično da samo nekoliko istih
> korisnika iz kola u kolo učestvuje na takmičenju, moraću da
> najavim njegovo gašenje u slučaju
Pa "gašenje" baš ne mora, ali mogla bi da se otvori nova tema.
Ovako je pad opterećen iako me takmičenje ne zanima (nema se
vremena a i sa godinama takmičarski duh opada:). Moglo bi posle
završetka "kola" postavka zadatka, pobednik i uz poruku datoteka
sa rešenjima u temu algoritmi (nikad ne znaš šta će zatrebati,
a topla voda je otkrivena već n! puta), ali sve ostalo (diskusije
o težini zadatka, prigovori, čestitke pobedniku i sl.) u drugu
temu.
Bogi
algoritmi.188mango,
> Resenje je bazirano na rekurzivnom probijanju kroz "hodnike" u sva
> cetiri moguca smera. Znaci krene se od ulaza na jug, i proba se prolaz
Zar je bilo moguce zadatak uraditi i na neki drugi nacin?
algoritmi.189hercog,
@> Šta ti konkretno treba, mininalna dužina puta...?
Može i to, može i vreme (ako se zna brzina)...
Sale
algoritmi.190obren,
> Zar je bilo moguce zadatak uraditi i na neki drugi nacin?
Kao što sam (doduše šturo) napomenuo, moguće je i držati se "slepo"
jedne strane zida, pa ga pratiti ma gde on skrenuo. Evo, malo sam
grafički dočarao kako bi izlgledalo kretanje na ovaj način...
ulaz
:
████ │ ██████████████
██ ┌─┘ ██
██ │ ████
██ └─>─┐ ██
██████ │ ██
██ ┌───┘
██ │┌──>───┐
██ ││ ████ │
██ └┘ ██ ┌─┘
████████ :
Posle konačno mnogo ;) tumaranja sigurno dolaziš do izlaza. Probaj
recimo na onom lavirintu koji je galimpic dao kao primer, ali pre toga
uradi search & replace '*' sa '█' da bi se lakše snašao. Međutim, ima
jedno ali:
Iako sigurno izlaziš napolje, dobijaju se vrlo "tupave" putanje, (prođeš
istim pravcem u dva smera jer si okrenuo u nekom ćorsokaku) pa treba
filtrirati koordinate putanje da bi izlaz bio u traženom formatu. Zato
je rekurzivno rešenje znatno lepše i primerenije ovom konkretnom
problemu.
algoritmi.191maksa,
>> Zar je bilo moguce zadatak uraditi i na neki drugi nacin?
Na razne. Na pr. preko matrice susednosti grafa (Dijkstra,
Warshall), zatim na način opisan u knjizi Diskretna Matematika,
Dragoša Cvetkovića, i sl. Prolaznost i najkraći put kroz graf
(na šta se svodi problem sa lavirintom, koji se u matematici
zove planarni digraf) je dosta obrađivan. Za neke moje potrebe
imam implementirano rešenje iz pomenute knjige, al' sam kasno
video zadatak i nisam stigao da ga isčupam iz objekata i
"prepevam".
Primedbica: nije OK što ste izbacili asm iz takmičenja, čime
ste automatski isključili korisnika 'biber'. Ako čovek stvarno
sve svoje piše u asembleru onako brzo i efikasno, onda ga treba
čuvati kao nacionalno bogatstvo. :)
algoritmi.192embe,
>> Posto je vec postalo simptomaticno da samo nekoliko istih korisnika
>> iz kola u kolo ucestvuje na takmicenju, moracu da najavim njegovo
>> gasenje u slucaju da se nesto ne promeni sledeceg puta. Zadatak ce
>> biti laksi, pa pozivam sve Sezamovce da salju resenja. Vidimo se za
>> 2 nedelje!
I meni je jako zao sto su sada pristigla samo tri resenja. Mozda
bi se moglo pametovati o uzrocima ovako slabog odziva, ali situacija
je bila takva od samog pocetka. Naime broj ucesnika je bio ako se
ne varam: 1.kolo(X-Oks) - 4 , 2.kolo(vanredno-domine) - 5, 3.kolo
(Hanojske kule)- 1 (super brzi vinkom), 4.kolo(linije)-4 i
5.kolo(lavirint)- 3.
Pametovati se moze samo o sudbini takmicenja. Prvo, smatram da nije
dobro da se takmicenje ugasi. Drugo, mislim da je potrebno formirati
novu temu "takmicenje" u ovoj konferenciji. Trece, potrebno je
iz temelja rekonstruisati pravila takmicenja (vec smo ih menjali,
ali tim koji NE dobija...). Promene se nece desiti same od sebe.
Po mom misljenju:
- izmene se ne bi odnosile samo na kriterijum ocenjivanja radova,
jer smatram da uprkos nedostacima subjektivne procene radova,
ipak je to najobjektivniji nacin za vrednovanje. Do sada nije bilo
nikakvih primedbi na rad moderatora po tom pitanju, pa smatram da
ovo treba da ostane.
- treba promeniti sistem takmicenja, tako da se, recimo jednom
mesecno objave zadaci (vise zadataka odjednom - npr. 5-6) razlicitih
tezina, i za svaki zadatak u skladu sa njegovom tezinom, koeficijenti
bodovanja. Posle dve nedelje, zadaci bi se pregledali, moderator bi
svakom resenju dodeljivao bodove (0 - 5), mnozio sa koeficijentom
tezine, i dobijao bi se zbirni rezultat za svakog takmicara. Sustina
ovoga je pravljenje lige programera, koje bi trajalo recimo tri
ili cetiri meseca. Posle svakog mesecnog tamicenja proglasavao bi se
pobednik ("nosilac zute majice"), a nagrade bi mu bile: moralne
prirode - pohvala i ucestvovanje u pripremi i pregledanju sledeceg
kompleta zadataka (naravno zajedno sa moderatorom) i simbolicno
"materijalne" prirode - pretplata. Naravno on ne bi ucestvovao u
takmicenju kada zadaje zadatke. Liga bi isla dalje, pri cemu, da
pobednici pojedinih takmicenja ne bi bili hendikepirani, osnovni
kriterijum za plasman bio bi kolicnik ukupnih poena i broja
odrzanih "utakmica" kojima je prisustvovao.
Ukupni pobednik je onaj ko je ucestvovao na pola ili vise
takmicenja a ima najbolji gorepomenuti kolicnik.
Na kraju, ne mogu da odolim, moram da dam jednu digresiju. Za vreme
od 36 casova, u vote za vic meseca, glasa 3-6 ljudi. Za 15 dana,
javi se 30-60 ljudi. A mnogo je lakse glasati za vic meseca nego
resavati zadatak. Znaci, nerealno je ocekivati da ce u takmicenu
ucestvovati vise od 3-6 ljudi ma kako laki zadaci bili. Resenje
je u produzenju roka za slanje resenja. To je jasno.
Nadam se da ovde postoje ljudi kojima je stalo do nastavljanja
takmicenja u programiranju. Meni je stalo.
Izvinjavam se zbog opsirnosti.
Pozdrav, Milan.
algoritmi.194embe,
>> Ovaj put su stigla tri resenja, i to od korisnika embe, obren i
>> vinkom. Najlepse resenje (po meni) ponudio je obren koji dobija
>> mesec dana gratis pretplate.
Obrenu cestitam, moj algoritam je bio slican njegovom pa mi se zato
svidja kako razmislja :))))) (sala mala)
Svaka cast Obrenu i za onaj lepi gest sa svojom nagradom.
Pozdravljam i starog rivala vinkom-a koji je opet bio na nivou.
A sada nesto o samom zadatku. Ne znam da li je to bilo namerno ali
zadatak je bio skoro POTPUNO isti kao prethodni (linije). Da li je to
previd ili...
Naime, sa slicnom organizacijom podataka (koja je ipak najvazniji
deo svakog algoritma) mogao se resiti i jedan i drugi zadatak, a cilj
je bio nesto modifikovan ali nedovoljno razlicit. Kod linija, svaki
cvor je mogao da ima N veza sa drugim cvorovima, a ovde maksimalno 4,
kod linija se moralo proci kroz sve cvorove a ovde, od vec zadatog cvora,
do zadatog cvora. Znaci, razlike su samo u kriterijumu zavrsetka
i u tome sto je broj veza u drugom zadatku bio fiksiran.
Ne znam sta misle ostali, ali potenciranje na _igri_zasnovanim_ zadacima
moze da dovede do monotonosti.
Pozdrav, Milan.
algoritmi.195mbasta,
=> odrzanih "utakmica" kojima je prisustvovao.
=> Ukupni pobednik je onaj ko je ucestvovao na pola ili vise
=> takmicenja a ima najbolji gorepomenuti kolicnik.
Potpuno se slazem sa tobom.
=> Izvinjavam se zbog opsirnosti.
Nemas zasto. Sve sto si napisao je vredno potrosenog vremena.
Pozdrav, Mbasta.
algoritmi.196cozymc,
Nikakvo gasenje takmicenja ne dolazi u obzir, u toku je ispitni rok(ovi).
Imam resenje, ali nisam stigao da ga posaljem jer se po Marfiju necete
ulogovati pet minuta pre 12!
algoritmi.197biber,
>> pobednik ("nosilac zute majice"), a nagrade bi mu bile: moralne
>> prirode - pohvala i ucestvovanje u pripremi i pregledanju sledeceg
Pre bih rekao da u ovom grmu lezi zec. Naime kad bi nagrade
bile jace verujem da bi daleko vise ljudi ucestvovalo. Ipak tesko
da tako nesto moze Sezam da uradi samostalno. Dakle ne bi bilo
lose da u takmicenje umesa prste neki sponzor. I to neko ko bi imao
neke koristi od toga. Npr neka firma koja se bavi izradom programa.
Mozda bi joj se isplatilo da prati takmicenje i primi nekog mladog
i kvalitetnog programera pod svoje okrilje.
Koliko vidim na internetu (prateci 3d animaciju) cesto firme
same organizuju takmicenje u animaciji, uz velike nagrade. To naravno
ne rade iz nakih altruistickih pobude, vec da bi otkrila potencijalne
saradnike...
algoritmi.198biber,
>> zadatak je bio skoro POTPUNO isti kao prethodni (linije). Da li je to
A kad malo razmislis slican je i sa "dominama". Na kraju krajeva sva
racunarska tabacenja sa svode na rekurziju.
>> Ne znam sta misle ostali, ali potenciranje na _igri_zasnovanim_ zadacima
>> moze da dovede do monotonosti.
Vidis meni mi bili interesantni zadaci kao sto je bilo jedno pitanje
postavljeno valjda u ovoj temi. Neko je pitao za algoritam sencenja
trougla, pod uslovom da se zna intenzitet osvetljenja temena.
(ovo pisem po secanju, mozda gresim, ali kao zadatak mi deluje
zanimnjivo)
algoritmi.199dr.s,
/* ste automatski iskljucili korisnika 'biber'. Ako covek stvarno
/* sve svoje pise u asembleru onako brzo i efikasno, onda ga treba
/* cuvati kao nacionalno bogatstvo. :)
Raritet, bre!
Mada znam jos neke 'asemblerase' kojima bas i nije do takmicenja. :)
(ogradjujem se od necije pomisli da sam ja taj; nisam! O:))
algoritmi.200hercog,
@> Ima li ko algoritam ili source nekog programa za pretraživanje
@> težinskog grafa?
@>
@> Sale
algoritmi.201embe,
Ja>>> pobednik ("nosilac zute majice"), a nagrade bi mu bile: moralne
Ja>>> prirode - pohvala i ucestvovanje u pripremi i pregledanju sledeceg
Ti> Pre bih rekao da u ovom grmu lezi zec. Naime kad bi nagrade
Ti> bile jace verujem da bi daleko vise ljudi ucestvovalo.
E, ja stvarno ne mislim da je osnovni razlog malog odziva - mala nagrada.
Mislim da su "zec i grm" u tome sto takmicenje nije dovoljno atraktivno i
sto je rok za slanje resenja kratak. Na kraju krajeva, programeri su
toliko sujetni i ljubomorni na svoje znanje (u pozitivnom smislu), i
zeljni dokazivanja, a u praksi imaju malo prilika za dokazivanje, da
jedva cekaju da se dokazu i dobiju priznanje za svoje umece. Materijalna
satisfakcija je sasvim nebitna u procesu dokazivanja. Naravno potrebno
ih je zainteresovati lepim i razlicitim zadacima. Takodje, ako je rok
za slanje dovoljno dug, imace vremena da daju najbolje od sebe i s
pravom se nadaju da ce biti uspesni takmicari.
Da sam bar delimicno u pravu, govori i cinjenica da si i Ti ucestvovao
u takmicenjima, sto znaci da nisi bio animiran nagradom, vec si takmicenje
shvatio kao izazov. Ne mislim da ovde postoji i jedan "teski profesionalac"
koji zbog niskih nagrada ne zeli da ucestvuje. S obzirom da na drugim
mestima nema takmicenja na kojima bi se dokazali, oni ostaju anonimni,
sto je suprotno programerskom duhu.
Pozdrav, Milan.
algoritmi.202pedjak,
> Ž> Šta ti konkretno treba, mininalna dužina puta...?
> Može i to, može i vreme (ako se zna brzina)...
Ovako, algoritam zvani Minimal, daje minimalnu dužinu puta između dva
čvora u grafu.
Na osnovu poznate strukture grafa formira se njemu odgovarajuća
matrica susednosti, vrednost elementa na poziciji (i,j) je u stvari
težina grane između čvora i i j. Matrica susednosti koja se ovde
koristi se dodatno modifikuje, tako što se svi elementi čija bi
vrednost trebala da bude nula (čvorovi nisu povezani), zamenjuje
nekom velikom vrednošću, teorijski sa beskonačno. Na tako dobijenu
matricu primeni se sledeći algoritam:
for i = 1 to n
for j = 1 to n
for k = 1 to n
C(i,j) = min (C(i,j), C(i,k)+C(k,j))
endfor
endfor
endfor
gde je C matrica susednosti, n broj čvorova, a funkcija min vraća
manju vrednost od dve.
Kao rezultat u matrici C na poziciji (i,j) se pojavljuje minimalna
dužina puta između čvorova i i j, ili beskonačno (tj. ono što smo
proglasili beskonačnim) , ako čvorovi nisu povezani.
Ovaj metod _ne daje_ listu čvorova koji se nalaze na minimalnom
putu. Ovako nešto daje Dijkstra algoritam. Ako ti ovo gore ne radi
posao, objasnićemo i ovo :)
pedja
algoritmi.203hercog,
@> Ovaj metod _ne daje_ listu čvorova koji se nalaze na minimalnom
@> putu. Ovako nešto daje Dijkstra algoritam. Ako ti ovo gore ne radi
@> posao, objasnićemo i ovo :)
Trebala bi mi i lista čvorova na minimalnom putu...
Sale
algoritmi.204biber,
>> shvatio kao izazov. Ne mislim da ovde postoji i jedan "teski
>> profesionalac" koji zbog niskih nagrada ne zeli da ucestvuje.
Pa sad da li kod nas uopste ima profesionalaca u racunarskim
poslovima... Svi pomalo rade prelom, dizajniraju u korelu, crtaju
u autokedu, programiraju u kliperu...
E sad zamisli tako nekoga koga ceka neki projekt koji na kraju
krajeva donosi neki novac, a on treba da se zabavlja sa zadacima?
Ne shvati pogresno, lepo je ucestvovati. Ali kad bi nagrada
bila odgovarajuca zaradi na nekom od gore pobrojanih poslica
(a to nije mnogo), vise ljudi bi imalo motiva da ucestvuje u
takmicenju.
algoritmi.205spantic,
> Pa sad da li kod nas uopste ima profesionalaca u racunarskim
> poslovima... Svi pomalo rade prelom, dizajniraju u korelu, crtaju
> u autokedu, programiraju u kliperu...
Veruj da ima. Pogotovo nemaš stavku crtaju pomalo u AutoCad-u.
Na prvi pogled se razlikuje rad profesionalca i amatera, pogotovo
svaštara.
algoritmi.206galimpic,
************************************
TAKMIČENJE U PROGRAMIRANJU - 5. KOLO
************************************
Tačno u podne, u nedelju, 7. jula 1996. u temi "algoritmi" biće postavljen
nagradni zadatak. Rešenja se šalju isključivo kao mail korisniku "zadaci"
najkasnije do ponedeljka, 8. jula u ponoć (36 sati posle postavke).
Rešenje treba da bude u obliku izvornog i izvršnog koda koji su kao fajlovi
prikačeni uz mail poruku. U obzir dolaze samo BASIC, Pascal, C i C++.
Najbolji program, po mišljenju moderatora dobija prvu nagradu - mesec dana
gratis pretplate na SezamNet. Rezultati u utorak popodne.
Srećno!
algoritmi.207omega,
Iz tehnickih razloga Goran Alimpic nije u mogucnosti da se javi na Sezam.
Zadatak iz takmicenja u programiranju ce ostaviti do 20 casova.
algoritmi.208galimpic,
*******************************************
TAKMICENJE U PROGRAMIRANJU - ZADATAK BROJ 5
*******************************************
Sa tastature se unosi pozitivan ceo broj manji od 100. Potrebno je pronaci
sve razlicite nacine na koje se taj broj moze prikazati kao zbir drugih
prirodnih brojeva. Rezultat se upisuje u datoteku IZLAZ.TXT tako da svaki
red predstavlja po jedan zbir, a sabirci se razdvajaju znakom '+'. U
zadnjem redu datoteke treba navesti ukupan broj razlicitih kombinacija.
PRIMER:
C:\>RESENJE.EXE
Unesi broj: 4
C:\>TYPE IZLAZ.TXT
1+1+1+1
1+1+2
1+2+1
2+1+1
1+3
3+1
2+2
4
8
C:\_
algoritmi.210galimpic,
**********************************************
TAKMIČENJE U PROGRAMIRANJU - REZULTATI 5. KOLA
**********************************************
Zadatak je bio namerno lak: nadao sam se da ću time privući više
takmičara. Kako je pristiglo samo dva rešenja (korisnici bokir i vinkom,
embe je pre isteka roka izbrisao svoj prilog), takmičenje se ukida do
daljnjeg.
Pobednik ovog kola je VINKOM.
res5.txtalgoritmi.211hercog,
»» Ima li ko algoritam ili source nekog programa za pretraživanje
»» težinskog grafa?
Sale
algoritmi.212pedjak,
> Ima li ko algoritam ili source nekog programa za pretraživanje
> težinskog grafa?
Deder, potseti me, ovo je bilo pre mesec dana... Čini mi se da sam
ti dao alogoritam Minimal, možda ti treba nešto drugo..?
algoritmi.213hercog,
»» Deder, potseti me, ovo je bilo pre mesec dana... Čini mi se da sam
»» ti dao alogoritam Minimal, možda ti treba nešto drugo..?
Pa ja rekoh da mi treba algoritam koji em što nalazi najoptima-
lniju granu u nekom grafu između dva čvora nego i pamti kojim
čvorovima treba proći...
Sale
algoritmi.214dr.grba,
>> Pa ja rekoh da mi treba algoritam koji em što nalazi najoptima-
>> lniju granu ...
Književniče, ne postoji NAJOPTIMALNIJE. Ili je optimalno ili nije.
algoritmi.215vitez.koja,
#=>>> Pa ja rekoh da mi treba algoritam koji em što nalazi najoptima-
#=>>> lniju granu ...
#=> Književniče, ne postoji NAJOPTIMALNIJE. Ili je optimalno ili nije.
Nemoj tako oštro, evo i stari latini su znali za pojam Optimus
Maksimus, milim da je prevod na naš jezik jasan (treba li i reference da
navodim ;)?
sk
algoritmi.216tehnikum,
Ima li nekog ko zna kako se rachnaju koeficijenti za matematichki
model 2-pole filtera ili nekog multi-pole filter (vishe od 2
"poluge") ???
Byte Pointer
Of
Distorsion
algoritmi.217nlazic,
Da li neko nešto zna o algoritmu za raspoređivanje ravanskih figura na
datu površinu, tako da procenat iskorišćenja površine bude maksimalan
(optimizacija rasporeda figura na pravougaonoj osnovi)?
algoritmi.218sasab,
Zna li neko kako se formira matični broj građana? Ide datum rođenja
pa dalje ...
Bogi
algoritmi.219dr.grba,
>> Zna li neko kako se formira matični broj građana? Ide datum rođenja
>> pa dalje ...
Pa tri cifre za šifru opštine rođenja, pa 0 za muške, 1 za ženske, pa
cifra za redni broj rođenog tog dana, pa kontrolna cifra po tamo nekom
modulu...
Ili će biti dve cifre za šifru opštine, a dve za redni broj....
Ne sećam se više, a imao sam (i izgubio ): ) ovu šemu.
algoritmi.220isekulovic,
>> Pa tri cifre za sifru opstine rodenja, pa 0 za muske, 1 za zenske, pa
Dve za opstinu, 0 za muske 5 (!) za zenske, dve cifre redni broj i
jedna kontrolna cifra.
algoritmi.221dr.grba,
>> Dve za opstinu, 0 za muske 5 (!) za zenske, dve cifre redni broj i
>> jedna kontrolna cifra.
E, tako, tnx. Hajde sad da nas neko priseti načina izvođenja
kontrolnog broja.
algoritmi.222firus,
> Zna li neko kako se formira maticni broj gradana? Ide datum
> rodenja pa dalje ...
Jedinstveni maticni broj gradjana (JMBG) je trinaestocifreni
broj sacinjen po sledecoj semi:
DDMMGGGXXBBBC
gde su:
DD - datum rodjenja
MM - mesec rodjenja
GGG - godina rodjenja (bez cifre 1 za hiljadu)
XX - ovo je oznaka za administrativn/upravnu oblast
(ono 7 je za Srbiju, za ostale, sada bivse
republike, ne znam podatke)
BBB - 000-499 - muska osoba
500-999 - zenska osoba
(ovo je uzeto na osnovu statistickog proseka da
se u Beogradu, koji ima najveci broj rodjenih
tokom dana, dnevno ne moze roditi vise od 500
dece istog pola)
C - kontrolna cifra koja se proracunava po sledecem
algoritmu (Pascal, nadam se da je svima jasno):
var
JMBG:string[13];
i,j,result:word;
begin
readln(JMBG);
result:=0;
j:=1;
for i:=7 downto 2 do
begin
result:=result+(ord(JMBG[j])-48)*i;
result:=result+(ord(JMBG[j+6])-48)*i;
j:=j+1
end;
result:=11-(result mod 11);
if result>=10 then
result:=0;
if (result=ord(JMBG[13]-48)) then
writeln ('Kontrolna cifra je u redu ... ',result)
else
writeln ('Kontrolna cifra je neispravna ...', result)
end.
Recimo, u mom slucaju JMBG je 1905974762613 jer sam
rodjen 19.05.1974. u Pozarevcu, opstina Pozarevac, Republika Srbija,
i upisan sam pod brojem 261 u neku knjigu (nema pojma koju, valjda je
maticna knjiga rodjenih u pitanju) ...
algoritmi.223mdimitrijevic,
Ovo je jedan od najkompletnijih tutorial-a o texture mappingu koji
sam video. Potrebno je određeno predznanje.
Obuhvaćen je teorijski, C (Watcom C) i ASM pristup. Većinom 32-bitni
kod i za one koji nisu previse upoznati moze predstavljati problem.
Uz malo probe, sa dobrim texture mapping rutinama mogu se uraditi i
environement mapping (ogledanje okoline na objektu), phong sencenje ...
fatmap.zipalgoritmi.224centrotextil,
Potreban algoritam, isti kao sto trazi nlazic:
Algoritam bi trebao da optimizuje raspored narucenih elemenata za
secenje (pravougaoni komadi proizvoljnih dimenzija, u proizvoljnom
broju primeraka) iz table materijala standardne velicine, a sve sa
ciljem minimizacije "restlova" (neiskoriscenih povrsina).
Kako nemam nikakvu ideju o algoritmu, svaki pointer je dobrodosao
hvala
pozdrav branko
algoritmi.225isekulovic,
>> Kako nemam nikakvu ideju o algoritmu, svaki pointer je dobrodosao
Prevrni stare pc.prog konferencije (lakse reci nego
uraditi, ali sta je tu je). Bilo je price o algoritmima za
optimalno pakovanje fajlova na diskete, odnosno pesama na
kasete. Mislim cak da je pominjan i tvoj problem kao primer 2D
ekvivalenta gore navedenih problema.
algoritmi.226hercog,
Neko je pominjao da negde u starim PCPROG konferencijama ima
algoritam za određivanje optimalnog rasporeda snimanja pesama na
kasetu. Bih bi veoma zahvalan kad bi mi neko ukazao na lokaciju na
kojoj se taj algoritam nalazi...
Sale
algoritmi.227nenad,
> Neko je pominjao da negde u starim PCPROG konferencijama ima
> algoritam za određivanje optimalnog rasporeda snimanja pesama na
> kasetu. Bih bi veoma zahvalan kad bi mi neko ukazao na lokaciju na
> kojoj se taj algoritam nalazi...
Ne znam gde se nalazi i ima li ga uopšte, ali algoritam je
prilično jednostavan. Sortiraj pesme po dužini i kreni od najduže
redom da ih snimaš. Kada pred kraj ne budeš mogao neku da snimiš
probaš onu "ispod" nje. pa opet, pa opet... Za sledeću
kasetu/stranu uzmeš one što su ostale, takođe od najveće ka
najmanjoj.
Algoritam nije idealan i savršen, ali u gotovo svim "realnim"
situacijama daje zadovoljavajuće rezultate.
algoritmi.228nenad,
Nova datoteka:
dos\comm\*.*
------------------
pgp263is.zip 645k ű Izvorni kod programa PGP v2.6.3i (internacionalna verz.)
U pitanju je sors internacionalne verzije PGP-a (one koja koristi
nelicencirani, brži RSA algoritam). Ovu verziju zabranjeno je
koristiti u USA.
algoritmi.229zkis,
HELP:
Problem je prakticne prirode. Resavam problem iz termickih proracuna
gde ima puno tabela sa empirijskim podacima. Tabele su
trodimenzionalne, tj za ulazne vrednosti X i Y dobija se trazena
vrednost Z. Na primer jedna (mala) tabela izgleda ovako:
\ y 10 12.5 15 17.50
x\_____________________________
5 | 0.05 0.06 0.14 0.21
10| 0.07 0.09 0.13 0.17
15| 0.09 0.10 0.16 0.19
Dakle tabela ne mora imati isti broj redova i kolona !
Na primer za ulaznu vrednost X=10 i Y=12.5 dobijam rezultat Z=0.09
Na na koji nacin da dobijem matematicku jednacinu aproksimativne
povrsi tipa Z=F(X,Y) koja sa dovoljno tacnosti prikazuje ovaku tabelu
???
Napominjem da je ovaj primer ovde zbog konciznosti isecen iz
sadrzaja, tabele su inace mnogo vece i ima ih dosta. Probao sam
Excel, MicroCal Origin, MatLab u kome se bas i nisam snasao.
Potreban je univerzalni matematicki princip resavanja ovakvih
problema.
Ocajnik sa Banovog Brda.
algoritmi.230vasic,
> \ y 10 12.5 15 17.50
> x\_____________________________
> 5 | 0.05 0.06 0.14 0.21
> 10| 0.07 0.09 0.13 0.17
> 15| 0.09 0.10 0.16 0.19
>
> Na na koji nacin da dobijem matematicku jednacinu aproksimativne
> povrsi tipa Z=F(X,Y) koja sa dovoljno tacnosti prikazuje ovaku tabelu
> ???
Priznajem da ovo nisam nikad radio, ali mi jedno pade na pamet: Mogao bi
da pokušaš da ideju Lagranžove interpolacije proširiš sa funkcije jedne
na funkciju dve promenljive.
Elem, u Lagranžovoj interpolaciji za funkciju jedne prom. kada imaš k+1
par (x[i], y[i]) ti pretpostaviš da ti je funkcija oblika
k k-1 k-2
y(x) = A x + A x + A x + ... + A x + A
0 1 2 k-1 k
Kada u ovu jednačinu uvrstiš k+1 parova poznatih vrednosti (x[i], y[i])
dobijaš sistem od k+1 jednačine sa k+1 nepoznatih: A[0], A[1], ... A[k]
a to su koeficijenti pretpostavljene interpolacione funkcije.
U tvom slučaju imaš (m+1)*(n+1) trojki (x[i,j], y[i,j], z[i,j]). Možeš
da pretpostaviš da ti je funkcija oblika
m n m n-1 m n-2 m
z(x,y) = A x y + A x y + A x y + ... + A x +
00 01 02 0n
m-1 n m-1 n-1 m-1 n-2 m-1
+ A x y + A x y + A x y + ... + A x +
10 11 12 1n
...
n n-1 n-2
+ A y + A y + A y + ... + A
m0 m1 m2 mn
Uvrsti ovde konkretne vrednosti za (x,y,z) i dobićeš sistem od
(m+1)*(n+1) jednačine sa (m+1)*(n+1) nepoznatom. Gadan posao za čoveka,
ali računar će ga rešiti, pre ili kasnije. :) Na ovaj način dobijaš
funkciju koja _sigurno_ prolazi kroz sve zadate tačke, a ako su ti
ulazne vrednosti onako zgodne kao u gornjem primeru, i između njih bi
trabalo da ostane prilično mirna.
Ono što me stvarno brine su brzina i potrošnja memorije. Ako ti je
ulazna matrica kvadratna, dimenzija n*n, sistem je n^2*n^2. Znači, za
ulaznu matricu 100*100, rešava se sistem 10000*10000. 'Ajde što će da
traje, nego što će za to biti potrebna matrica od 100 miliona elemenata
što uz 4-bajtni float izađe 400MB! :( U takvom slučaju mogao bi da
podeliš podeliš ulaznu matricu 100*100 na recimo 8 delova 25*25 čime se
zahtev za memorijom svodi na mnogo razumnijih 1.5MB. Slično važi i za
vreme izračunavanja - mrzi me sad da tačno računam vremensku dimenziju
problema.
Ako se odlučiš da iskoristiš ovu ideju, obavezno mi javi kako je ispalo
na kraju.
> Ocajnik sa Banovog Brda.
Pozdrav, komšija. :)
algoritmi.231embe,
ŢŢProblem je prakticne prirode. Resavam problem iz termickih proracuna
ŢŢgde ima puno tabela sa empirijskim podacima. Tabele su
ŢŢtrodimenzionalne, tj za ulazne vrednosti X i Y dobija se trazena
ŢŢvrednost Z.
ŢŢNa na koji nacin da dobijem matematicku jednacinu aproksimativne
ŢŢpovrsi tipa Z=F(X,Y) koja sa dovoljno tacnosti prikazuje ovaku tabelu
ŢŢ???
ŢŢPotreban je univerzalni matematicki princip resavanja ovakvih
ŢŢproblema.
ŢŢOcajnik sa Banovog Brda.
Komsija, moram odmah da ti kazem jednu tuznu i jednu radosnu vest.
Tuzna - Univerzalni matematicki princip ne postoji.
Radosna - Postoji beskonacno mnogo "resenja".
Recimo:
Radi konciznosti objasnjenja uzecu na primer tablicu 2 X 2
(znaci imamo poznate 4(cetiri) tacke)
(Ovo NARAVNO vazi i za tablicu proizvoljnih dimenzija!)
x/y | 1 2 ili simbolima: x/y | y1 y2
------------- ---------------
10 | 0.5 0.7 x1 | z11 z12
15 | 0.6 0.9 x2 | z21 z22
Mozemo samo da mastamo o tome koja je povrs u pitanju.
Da li je to deo lopte, paraboloid ,hiperboloid , a da ne pominjemo
logaritamske, trigonometrijske, eksponencijalne ... povrsi.
Bilo kako bilo, ma koju povrs usvojili, za vrednosti (x,y) iz
tablice mora se dobiti vrednost z iz tablice dok ce unutar
(ponavljam: unutar) oblasti, (u ovom slucaju oblast je pravougaona
10<x<15, 1<y<2 ) dobiti interpolirane vrednosti koje su realnije
ukoliko je broj tacaka (citaj: broj vrsta i kolona tablice) veci.
Elem, evo jednog od resenja:
-------------------------------
Za tablicu sa V - vrsta i K-kolona imacemo N=V*K tacaka.
Izabracemo povrs oblika:
(1)
f(x,y) = suma(Ci * x^(N-i-1) * y^i ) , za i=0 do N-1,
Ci - nepoznate konstante
Ovo je polinom sa dve nepoznate, stepena N-1.
sto za N=4 daje:
(2)
f(x,y)= C1* (x^3) + C2* (x^2 * y) + C3* (x * y^2) + C4* (y^3)
C1,C2,C3,C4 su konstante koje treba odrediti.
Postupak odredjivanja konstanti je sledeci:
Imamo cetiri tacke kroz koje mora da prodje povrs, odnosno
cetiri uslova:
C1* (x1^3) + C2* (x1^2 * y1) + C3 *(x1 * y1^2) + C4 *(y1^3) = z11
C1* (x1^3) + C2* (x1^2 * y2) + C3 *(x1 * y2^2) + C4 *(y2^3) = z12
C1* (x2^3) + C2* (x2^2 * y1) + C3 *(x2 * y1^2) + C4 *(y1^3) = z21
C1* (x2^3) + C2* (x2^2 * y2) + C3 *(x2 * y2^2) + C4 *(y2^3) = z22
(x1,x2,y1,y2,z11,z12,z21,z22 su vrednosti iz tablice, dakle,
poznate vrednosti)
Vrednosti koeficijenata C1..C4 se dobijaju kao resenja ovog
sistema linearnih jednacina.
Kada se dobiju vrednosti za C1,C2,C3,C4 uvrste se u (2)
Na kraju se dobija jednacina povrsi koja ima oblik (1), pa
se mogu dobiti i vrednosti koje nisu u tablici.
NAPOMENA: Ovo je samo jedno od resenja cije je malo ogranicenje
da ne smeju da postoje dve tacke sa odnosom koordinata:
x1/x2=y1/y2=z1/z2
Ovo ogranicenje se lako prevazilazi "siftovanjem" x ili y
koordinata cele tablice za proizvoljnu konstantu.
Na primer:
Tacke:
x1=1 y2=2 z1=5 i x1=2 y1=4 z1=10
nalaze se u "nedozvoljenom" polozaju.
Ako y koordinate "pomerimo" na primer za +51 (proizvoljno)
dobicemo x1=1 y2=53 z1=5 i x1=2 y2=55 z1=10
(sada vec nisu u "nedozvoljenom" polozaju!)
Kada se odredi polinom (odnosno koeficijenti C1...CN),
jednostavno, ako zelimo vrednost za x=1.5 i y=3 u funkciju
ubacimo x=1.5 i y=3+51=54. (Ne treba preterivati u velicini
konstante koja se dodaje jer se radi sa stepenovanjem, pa moze
doci do gubitka preciznosti pri resavanju sistema)
Komsija, ukoliko zelis jos neka dodatna objasnjenja ili program
koji sam napravio da radi po ovom principu, slobodno javi.
PS.
Sada se svima izvinjavam sto ovo opsirno objasnjenje nisam
stavio u fajl, ali s obzirom da se tema zove algoritmi i
da nisu svi algoritmi u deset recenica, nadam se da cete
biti uvidjavni. Pozdrav.
algoritmi.232embe,
>>Priznajem da ovo nisam nikad radio, ali mi jedno pade na pamet: Mogao
>>bi da pokusas da ideju Lagranzove interpolacije prosiris sa funkcije
>>jedne na funkciju dve promenljive.
Hmm... dobro je, komsija. Razlika je samo u izboru polinoma.
>>>Ono sto me stvarno brine su brzina i potrosnja memorije. Ako ti je
>>>ulazna matrica kvadratna, dimenzija n*n, sistem je n^2*n^2. Znaci, za
>>>ulaznu matricu 100*100, resava se sistem 10000*10000. 'Ajde sto ce da
>>>traje, nego sto ce za to biti potrebna matrica od 100 miliona
>>>elemenata
E bas fino sto si ovo napomenuo. Predlazem da se malo u ovoj temi
pozabavimo jednom naizgled trivijalnom a ipak izuzetno kompleksnom
temom: RESAVANJE VELIKIH SISTEMA LINEARNIH JEDNACINA (naravno
racunarom).
Sa aspekta brzine, upotrebe resursa racunara, tacnosti i slicno.
Pozdrav.
algoritmi.233ppecanac,
> pozabavimo jednom naizgled trivijalnom a ipak izuzetno
> kompleksnom temom: RESAVANJE VELIKIH SISTEMA LINEARNIH
> JEDNACINA (naravno
Ja sam svojevremeno trazio resenje za sistem linearnih jednacina
sa simetricnom matricom, trebalo mi je hitno.
Cini mi se da niko nije reagovao.
'Morao' sam zato da ga zbrzim sam, pa na optimizaciju nisam
ni pomisljao. Koga jos to interesuje kad je pentium pro u modi.
Salim se. (ja sam jos u uvek na amd-u)
algoritmi.234jjerry,
Mozda ovo pitanje i nema veze sa temom algoritmi ali ,ipak, saljem.
Naime,posto sam relativno nov u asemblerskim vodama interesuje me
samo algoritam (ako neko zna moze i kod) neke interapt hendler
rutine.
U ovoj temi su ,izgleda,svi sa Banovog Brda,dakle, moje komsije ;)
algoritmi.235mmilosh,
>> pozabavimo jednom naizgled trivijalnom a ipak izuzetno
>> kompleksnom temom: RESAVANJE VELIKIH SISTEMA LINEARNIH
>> JEDNACINA (naravno
>
> Ja sam svojevremeno trazio resenje za sistem linearnih
> jednacina sa simetricnom matricom, trebalo mi je hitno.
Evo ja sam zaiteresovan za razglabanje o tome pošto upravo to sada radimo
na fakultetu (Matematički, smer za računarstvo i informatiku, I godina).
Ali još sam početnik u tome pa bih u početku samo slušao ;))
algoritmi.236janko,
> Mozda ovo pitanje i nema veze sa temom algoritmi ali ,ipak, saljem.
Nema, vidi dalje.
> Naime,posto sam relativno nov u asemblerskim vodama interesuje me
> samo algoritam (ako neko zna moze i kod) neke interapt hendler
> rutine.
Ne, diskusiji na ovu temu mesto je u temi asembler. Ovo što tebe
zanima ipak nema veze sa algoritmima.
algoritmi.237embe,
Subject: Resavanje velikih sistema linearnih jednacina.
Hteo bih samo malo da usmerim paznju i diskusiju (ako je
uopste bude bilo). Dakle ...
Pre pojave racunara, a u doba logaritmara veliki izazov je
predstavljao i sistem linearnih jednacina reda 3 i vise.
Onda je postojao jedan praktican nacin resavanja (gausov
postupak eliminacije) i nekoliko teoretskih (teoretskih, zato
sto nisu bili primenljivi zbog velikog broja aritmetickih operacija.)
I onda je dokazano da je od svih direktnih (= neiterativnih)
postupaka, gausov postupak najbrzi jer je potrebno najmanje
operacija.
I tu se, sto se tice direktnih postupaka, stalo.
Pre vise od 150 godina.
Iterativni postupci su druga prica. Od pojave racunara
poceli su da prezivljavaju drugu mladost.
Povecavanjem broja jednacina, neprikosnovenost gausovog postupka
se sve vise dovodila u pitanje. Cak, da apsurd (a u stvari to
i nije) bude veci, nesto sto se na prvi pogled ne bi nikad moglo
dovesti u pitanje, - pocela je da se gubi tacnost.
Zna se da gausov postupak nagomilava gresku i da je ona veca
sto je broj jednacina veci.
Sa druge strane, iterativni postupci ne pate od problema
nagomilavanja gresaka jer se sami iterativno popravljaju.
Tako je doslo do toga da je Gaus i definitivno out a da su
iterativni postupci in.
Naravno, Gaus se jos, tu i tamo drzi, uz neke modifikacije, ali...
Koja je dakle, osnovna mana gausovog algoritma za resavanje ?
Odgovor je pomalo apsurdan, to je njegova univerzalnost !
Naime, ovim nacinom je moguce resiti sve sisteme linearnih jednacina
koji uopste imaju resenja. Takodje, resava simetricne, nesimetricne,
trakaste i pune sisteme. Ali, veliki sistemi linearnih jednacina,
cije se resavanje zahteva u novije vreme, nisu toliko proizvoljni.
Oni su uglavnom simetricni (lepa strana prirode ona
sa isto toliko nepoznatih !!!
Kada bi se to resavalo uz pomoc Gausa, puna matrica bi stala na
"tricavih" 96 gigabajta (za dvostruku tacnost).
Medjutim, to ne pije vodu.
Dakle, ovo je samo bio slagvort, otvaram diskusiju o resavanju
velikih (specificnih) sistema linearnih jednacina.
Specificni sistemi = svi koji imaju neku bitnu karakteristiku,
kao sto je simetricnost, trakastost, dijagonalna dominantnost,
pozitivna definitnost ili nesto deseto....
Ovakvi sistemi se najcesce i javljaju u nekim konkretnim
problemima (izuzimam zbirke zadataka :) )
Ukoliko neko nesto zna i hteo bi to da podeli, neka se ukljuci.
Ukoliko neko ima neki problem, takodje neka se ukljuci.
algoritmi.238vdjole,
> 1.229, 1.230, 1.231, ... 1.235
Evo jedan objedinjeni komentar na nekoliko poruka koje su se odnosile
na aproksimaciju funkcije dve promenljive a zatim na resavanje sistema
linearnih jednacina.
Izvinjavam se zbog nedostatka YU slova u ovoj poruci, ali kako koristim
yuscii a ovde ce biti malo uglastih i viticastih zagrada, trenutno je
set code=none. A izvinjavam se i zbog duzine, ali, kako neko ovde rece,
neke stvari se ne mogu objasniti u dve-tri recenice.
Daklem, pocetni problem je bio kako aproksimirati tablicno zadanu
funkciju dve promenljive. Ovde su moguca dva pristupa, a moguce je da
autor pocene poruke nije bio bas najprecizniji u tome koji mu treba:
1- interpolacija funkcije: resenje u obliku neke jednostavne funkcije vazi
samo unutar jedne "pravougaone" oblasti u tablici koja se prostire od
(x1,y1) do (x2,y2). Pri trazenju vrednosti za proizvoljno x i y prvo
se odredi u koje "polje" padaju vrednosti x i y, pogodna jednostavna
funkcija se odredi (kasnije o tome kako se odredi) na osnovu vrednosti
u okolnim tackama i izracuna se z=f(x,y).
2- aproksimacija funkcije: resenje u obliku neke (manje-vise) jednostavne
funkcije vazi unutar cele oblasti definisane tablicom. Medjutim,
aproksimativna funkcija ne mora biti jednaka tablicnim vrednostima
ni u jednoj tacki iz tablice, vec se obicno uzima da je najopogodnije
da zbir kvadrata odstupanja aproksimacije od tablicnih vrednosti
bude minimalan. Ovo je poznati "metod najmanjih kvadrata" i vrlo
je pogodan pri obradi rezultata iz raznih merenja i sl. zato sto
sluzi i kao "filter" za "peglanje" slucajnih gresaka u merenju
pojedinih vredosti iz tablice.
I za 1- i za 2- vazi da izabrani oblik funkcije mora biti u skladu sa
raspolozivim brojem tacaka, tj. broj koeficijenata funkcije koja se
odredjuje ne sme biti veci od broja raspolozivih tacaka. U prvom slucaju
to je broj "okolnih" tacaka, a u drugom ukupan broj tacaka u tablici.
Inace, ako je raspolozivi broj tacaka jednak najmanjem dozvoljenom broju
tacaka za izbrani oblik interpolacione ili aproksimacione funkcije,
pristup 2- se, de fakto, svodi na pristup 1-.
Obicno je pogodno za "jednostavnu" funkciju uzeti polinom, osim ako se zna
da, teoretski, problemu koji se razmatra odgovara neka druga funkcija.
Medjutim, polinom gotovo uvek "upali" jer se i druge funkcije
razvijanjem u red mogu aproksimirati polinomom.
Ako se radi INTERPOLACIJA resenje se manje vise svodi na odredjivanje
Lagranzevog polinoma ili na neki drugi postupak koji, u sustini, daje
potpuno isti polinom. U najjednostavnijem slucaju interpolacija se
radi samo na osnovu 4 okolne tacke. Resenje je pravoizvodna povrsina tipa
hiperbolickog paraboloida. Na sve 4 ivice oblasti u kojoj se interpolira
(tj. na potezima x1y1...x1y3 ili x1y1...x2y1 itd.) resenje se dobija
linearnom interpolacijom. Unutar oblasti resenje je funkcija drugog stepena.
Meni licno uvek je bilo nekako zgodno ovu interpolaciju raditi koristeci
"funkcije stapanja" (blending functions, sto bi rekli Englezi). Ako za
4 okolne "praovugaono" rasporedjene okolne tacke imamo x1,y1,z1... x4,y4,z4
(x1=x3, x2=x4, y2=y1, y3=y4), za proizvoljno x,y unutar ili na granici
ove oblasti interpolira se:
z= f1(x,y)*z1 + f2(x,y)*z2 + f3(x,y)*z3 + f4(x,y)*z4
gde su f1...f4 funkcije koje mogu imati vrednost od 0 do 1:
f1 = (x2-x)/(x2-x1) * (y3-y)/(y3-y1)
f2 = (x-x1)/(x2-x1) * (y3-y)/(y3-y1)
f3 = (x2-x)/(x2-x1) * (y-y1)/(y3-y1)
f4 = (x-x1)/(x2-x1) * (y-y1)/(y3-y1)
(btw. tacno na sredini oblasti sve cetiri imaju vrednost 0.25, tj. sve
4 okolne tacke ravnopravno ucestvuju u odredjivanju vrednosti)
Za interpolaciju na osnovu 4 okolne tacke NEMA NIKAKVOG OPRAVDANJA
koristiti vise stepene polinoma jer gornji postupak daje
"najglatkiju" (uh, al je rec) povrsinu dok za polinome viseg stepena
ima beskonacno mnogo resenja koja mogu sadrzati neocekivane "krivine"
unutar oblasti, iako su tacna u one 4 tacke.
Postoje i neke egzoticne varijante tzv. "transfinitne" interpolacije
( (c) : Coons ) kod koje se na granicama oblasti aproksimaciona funkcija
tacno poklapa sa nekim slozenijim unapred zadatim funkcijama a unutar
oblasti se takodje koriste "blending functions". Ako su granicne funkcije
funkcije linearne, transfinitna interpolacija se svodi na gornji slucaj.
Ako se radi APROKSIMACIJA (tj. metodom najmanjih kvadrata) takodje se
treba cuvati polinoma viseg stepena. Generalna smernica moze biti da
polinomi stepena veceg od 3. imaju tedenciju da sadrze neocekivane
prevojne tacke, tj. da budu "talasasti" unutar oblasti za koju se
odredjuju. Ovo je vrlo nepozeljna osobina ako se zeli automatizovati
postupak nalazenja vrednosti funkcije, jer se bez vizuelnog uvida
u aproksimiranu funkciju nikad ne moze znati da dobijena vrednost nije
"iskocila" na nekom talasu. Ako se zna teoretski oblik funkcije
koja se aproksimira takodje moze biti pogodno upotrebiti takve - druge-
funkcije a ne polinome. Na primer, postoji problem koji je pogodno
aproksimirati kao:
z(x,y) = a0 + a1*sin(x) + a2*cos(x)*sin(y) + a3*cos(x)*cos(y)
O tome kako se odredjuju koeficijenti funkcija metodom najmanjih
kvadrata, mozemo nekom drugom prilikom, ako nekoga bude interesovalo
(da ne tupim bas previse).
I aproksimacija i interpolacija zahtevaju odredjivanje koeficijenata
neke pogodne funkcije. U oba slucaja ovo se svodi na resavanje sistema
linearnih jednacina. Na zalost kolega koji su ovde razmatrali mogucnost
resavanja sistema 10000*10000, ovde postoje brojni prakticni problemi,
koji nemaju veze samo sa brzinom racunara. Nezgoda je u tome sto su
sistemi linearnih jednacina koji nastaju pri odredjivanju interpolacione
ili ekstrapolacione funkcije, tzv. "ill-conditioned systems". tj.
teze da imaju relativno male vrednosti u blizini glavne dijagonale
matrice sistema (ili se njihova matrica svodi na takvu matricu). Ovakvi
sistemi imaju malu determinantu i pri njihovom resavanju egzaktnim
metodama DOLAZI DO VRLO VELIKIH NUMERICKIH GRESAKA! Recimo, standardni
postupak za sisteme lin. jednacina je Gausov. Medjutim, vec kod ovakvih
sistema velicine, recimo 20x20, ako se radi sa 4-bajtnim FLOAT brojevima,
dolazi do tolikog nagomilavanja gresaka da su resenja, iako formalno
tacno dobijena, prilicno besmislena- sto se lako moze ustanoviti proverom.
Ako se resenje sistema dobija inverzijom matrice, kao:
-1
ŠAĆšxć=šbć ---> šxć = ŠAĆ šbć
( šxć su ovde zapravo trazeni koeficijenti aproksimacione funkcije )
greske bivaju jos i vece. Koriscenje 8-bajtnih FLOAT brojeva moze malo
pomoci, ali ne mnogo. Postoje jos neki postupci za ovakve sisteme, kao
tzv. L-R postupak, gde se matrica sistema razbija na dve trougaone, itd.
Za resavanje sistema koji nastaje pri aproksimaciji metodom najmanjih
kvadrata postoji i znatno bolji, ali relativno slozeni postupak pod
nazivom "singular value decomposition".
Jedan jednostavan postupak za poboljsanje resenja za "ill-conditioned"
sisteme je sledeci:
1: Svakako treba koristiti 8-bajtne promenljive
2: Sistem ŠAĆšxć=šbć se resi inverzijom matrice, kao gore. Medjutim,
zbog gresaka, tada se, zapravo, dobije resenje šx+dxć gde je šdxć
vektor gresaka pri odredjivanju šxć.
3: Izracuna se šb+dbć kao ŠAĆšx+dxć=šb+dbć; oduzimanjem šbć izdvoji se šdbć
-1
4: Nadje se šdxć kao: šdxć = ŠAĆ šdbć
5: Koriguje se šxć oduzimanjem šdxć od prvobitnog resenja.
6: Tacke 3-5 se ponove u nekoliko iteracija (obicno je 5-6 dovoljno),
pri cemu se (nadamo da se) dobija sve manje šdxć. Konacna vrednost
za šxć se uzme za resenje sistema.
Moglo bi se savetovati da se NE KORISTE "home made" rutine za inverziju
matrica ili za resavanje sistema jednacina, osim ako covek TACNO zna sta
radi. Korektna inverzija matrica zahteva gomilu zamena mesta i kolona s
obzirom na vrednosti clanova, sve u cilju smanjivanja pomenutih
numerickih gresaka.
Uh, toliko za sada Š i previse :) Ć. Na kraju, da neko ne misli da se sad
ja pravim strasno pametan, ovo je uglavnom po secanju na sadrzaj jedne VRLO
korisne knjige kojoj se sad ne secam tacnog naziva ni autora, a zove se
nesto kao "A Cookbok of Numerical Recipes", sa brojnim primerima koda
(u FORTRAN-u). Negde na poslu imam tacan naziv, pa ako nekome treba neka
vice. A mislim da se ta knjiga vec i pominjala negde u ovoj konferenciji.
algoritmi.239qpele,
Evo i mog doprinosa raspravi o interpolaciji
Evo i mog doprinosa rasparavi o interpolaciji.Uz poruku ide moj maturski rad
(program ) za interpolaciju. Sam program je prilicno amaterski uradjen ,ali
interpolaciju dobro radi i crta priblizan grafik funkcije na intervalu
(x-min,y-min)-(x-max,y-max).
interpol.raralgoritmi.240mmilosh,
> ŠAĆšxć=šbć ---> šxć = ŠAĆ šbć
>
> ( šxć su ovde zapravo trazeni koeficijenti aproksimacione
> funkcije )
Eh, ti i tvoj #$!@'& yuscii! :))) Sad su velike i srednje zagrade š i ć :((
Al shvatili smo kako treba da izgleda.
Mislim, ako se već baviš matematikom bio bi red da pređeš na neki ljudski
raspored.
Izvinjavam se, ali sam morao da primetim.:)
Pozdrav.
algoritmi.242vdjole,
>Eh, ti i tvoj #$!Ž'& yuscii! :))) Sad su velike i srednje zagrade š i ć :((
>Al shvatili smo kako treba da izgleda.
>Mislim, ako se već baviš matematikom bio bi red da pređeš na neki ljudski
>raspored.
Kuku! sad sam tek video šta sam uradio- poslao poruku po yuscii iako sam
mislio na code-none. Sorry svima koji su imali problema da ovo pročitaju.
Ne znam da l' je vredno truda da onu poruku obrišem pa da pošaljem ponovo.
'zvinte!
algoritmi.243bokir,
Jel može neko da objasni LZ/LZW algoritam za kompresiju?
algoritmi.244vector,
│ Jel moze neko da objasni LZ/LZW algoritam za kompresiju?
└─────────
Uz poruku je datoteka iz \Sezam\RSoft direktorijuma. Cini mi se da su
primeri pisani u C-u ...
r059lzw.zipalgoritmi.245biber,
Kako skeneri rade softversko povećanje rezolucije?
Ili drugim rečima, kako pretvoriti npr. sliku 320x200
u 640x400, a da ta slika stvarno izgleda kao da joj je
povećana rezolucija?
algoritmi.246vdjole,
> Kako skeneri rade softversko povećanje rezolucije?
Pretpostavljam da se to radi interpolacijom. I mene interesuje ako neko
ima detaljniji odgovor.
algoritmi.247nenad,
>> Kako skeneri rade softversko povećanje rezolucije?
>
> Pretpostavljam da se to radi interpolacijom. I mene interesuje ako neko
> ima detaljniji odgovor.
Neko je ovde dao lepo i detaljno objašnjenje pre... recimo godinu
dana ili nešto više. Ne sećam se tačno cele priče, ali nije
interpolacija, za to bi bio dovoljan i softver. Čini mi se da je
bila neka priča sa realnom optičkom rezolucijom i rezolucijom do
koje se dolazi finim pomerajem "valjka".
Znači nešto slično kao ona 360x360 rezolucija kod 24-igličnih
matričnih štampača, dakle bolja nego tadašnji laseri, ali zato je
jedna tačka "malo" poveća...
Kod skenera je ipak nešto povoljnija situacija jer i ta
"softverska" rezolucija je stvarna, samo zahteva duže skeniranje
i obradu - sva se mesta gledaju onoliko puta koliko puta je
zahtevana rezolucija veća od realne optičke rezolucije... ako me
razumete šta hoću da kažem. :)
U svakom slučaju mislim da pravo objašnjenje nećemo naći u ovoj
konferenciji.
algoritmi.248biber,
>> interpolacija, za to bi bio dovoljan i softver. Čini mi se da je
>> bila neka priča sa realnom optičkom rezolucijom i rezolucijom do
>> koje se dolazi finim pomerajem "valjka".
Dobro, mene više zanima software-only tehnika. Dakle da li
postoji algoritam za softversko povećanje rezolucije. Pretpostavljam
da se time nešto mora i izgubiti (takozvani zakon o održanju...
piksela :)
Pretpostavljam da će slika postati malo "umekšana".
algoritmi.249silence,
Zdravo svima. Potreban mi je algoritam za minimizaciju isecanja manjih
pravougaonika iz zadatog veceg. Ako neko ima nesto slicno bio bih
zahvalan na istom. Svi dogovori su moguci.
Dakle rezime: Imamo n ploca povrsine A i m1, m2,..., mx ploca razlicitih
povrsina? Koji je minimalan broj ploca A potreban da bi sve ploca mi
algoritmi.250nenad,
> Dobro, mene više zanima software-only tehnika. Dakle da li
> postoji algoritam za softversko povećanje rezolucije. Pretpostavljam
> da se time nešto mora i izgubiti (takozvani zakon o održanju...
> piksela :)
Pa ne izgubi se ništa, ali se i ne dobije mnogo - količina
informacije je ista. Ono što se promeni jeste način na koji je ta
informacija prezentovana, to jest očima niko nije rekao da je to
isto ono od pre samo malo ulepšano - i rezultat je bolji. :)
E sad, ono što ti hoćeš - softversko povećanje rezolucije - možda
i nećeš dobiti u pravom smislu te reči (dobićeš veći broj
različitih tačaka), ali recimo za povećanje detalja na bit-map
slikama ovo je sasvim upotrebljivo - oči same to ne bi umele da
urade tako dobro.
> Pretpostavljam da će slika postati malo "umekšana".
Evo uz ovu poruku primera, pa sam proceni. Zumiran je detalj
jedne slike, sa i bez uključene interpolacije piksela.
interpol.raralgoritmi.251tomislavr,
Ima li neko program/funkciju (na bilo kom pr. jeziku) za prevođenje brojeva
iz rimskog u arapski sistem?
algoritmi.252firus,
> Ima li neko program/funkciju (na bilo kom pr. jeziku) za
> prevođenje brojeva iz rimskog u arapski sistem?
Uz poruku je zakačena arhiva sa datotekama RIM2ARAP.C i
RIM2ARAP.PAS koje rešavaju problem. Problem ispravnosti unetog
rimskog broja (u smislu da je ispravan i npr. MIXC) nije rešen.
Jednostavno me je mrzelo da sada prepravljam sors i ubacujem to
parče.
BTW, da nisi možda student FON-a? ;)
Ovo je bio prvi zadatak iz PP-a u poslednjem ispitnom roku.
rim2arap.zipalgoritmi.253tomislavr,
> Uz poruku je zakačena arhiva sa datotekama RIM2ARAP.C i
> RIM2ARAP.PAS koje rešavaju problem. Problem ispravnosti unetog
Dankešen :)
> BTW, da nisi možda student FON-a? ;)
> Ovo je bio prvi zadatak iz PP-a u poslednjem ispitnom roku.
Nisam na FON-u, ali zadatak je za seminarski na jednom drugom fax-u.
algoritmi.255mmilosh,
> Nisam na FON-u, ali zadatak je za seminarski na jednom drugom
> fax-u.
Matematički, jel da?
algoritmi.256ratman,
Kopka me jedan problem..
Na koliko nacina se iz npr., skupa od 30 elemenata (svi razliciti)
mogu formirati 3 grupe od po 10 elemenata (redosled unutar grupa
nije bitan, samo sastav)?
Posto je za samo jednu grupu N=C(30,10), rekao bih
da je taj broj:
C (30,10) x C (20,10)
C oznacava, naravno, broj kombinacija, odn binomni koef,... itd.
Da li sam u pravu? Osnova kombinatorike se slabo secam, a
interesuje me ovaj proracun zbog nekakvih eksperimenata
(bioloskih) i algoritama za stratifikaciju, itd.
I, naravno, mnogo sam bolji u izmisljanju problema
nego resavanju.... :)
Pozdrav,
Dejanű▀ű▀řÚřÚřÚ
algoritmi.257dule.n,
=> C (30,10) x C (20,10)
=>
=> C oznacava, naravno, broj kombinacija, odn binomni koef,... itd.
=>
=> Da li sam u pravu? Osnova kombinatorike se slabo secam, a
U pravu si.
algoritmi.258dzakic,
> Posto je za samo jednu grupu N=C(30,10), rekao bih
> da je taj broj:
>
> C (30,10) x C (20,10)
Ukoliko je svaka grupa na neki način numerisana i zna se koja je
prva, koja druga a koja treća, onda si u pravu. C(30,10) - biraš
prvo 10 komada od 30, nakon toga ostaje 20 elemenata od kojih
ponovo biraš 10 - C(20,10). To je ok. Međutim, imaćeš slučaj da
su elementi u drugoj grupi, identični elementima iz prve grupe
iz nekog prethodnog izvlačenja. Dakle, same grupe 1 i 2 jesu
neki novi raspored, ali posmatrano globalno, to je opet isto
'cepanje'. Ukoliko ti treba ovakav drugi slučaj, tada rezultat
treba da podeliš brojem ovakvih situacija. A on je.. hm :), 3! ?
algoritmi.259mcar,
Kako izracunati broj godina, meseci i dana izmedju dva proizvoljna datuma?
Da li neko zna nesto o ovom algoritmu, ili o tome gde je isti opisan?
Unapred zhavalan Marko
algoritmi.260obren,
> Kako izracunati broj godina, meseci i dana izmedju dva proizvoljna datuma?
Za početak, postoji stanradna (ANSI) funkcija za određivanje razlike u
sekundama između dva datuma (pogledaj difftime i sve o tome). Ta razlika
u sekundama se može aproksimativno (deljenjem) prevesti u dane, mesece
godine itd.
Problem je ako hoćeš da odrediš razliku tačno, u "pravim" mesecima.
Recimo ako je u pitanju 30 dana razlike, to može biti i jedan mesec
i 2 dana (ako je negde oko februara), a može biti i nula meseci i
30 dana ako je recimo mart i sl.
algoritmi.261mcar,
Upravo je problem u tome sto mi ne odgovara aproksimativno reenje pomocu broja
sekundi ili dana. Takodje problem prave i pretupne godine.
Mislio sam da negde postoji vec gotov algoritam, ako ne moracu da se
maltretiram.
Marko
algoritmi.262vule.,
Da li neko zna kako da napisem program koji sortira linije teksta po
abecedi ?
algoritmi.263ognjen,
)-> Da li neko zna kako da napisem program koji sortira linije
)-> teksta po abecedi ?
Šta je tu komplikovano?
for i:=1 to broj_linija-1 do
for j:=i to broj_linija do
if (linija[i]>linija[j])
then
razmeni_linije(i,j);
algoritmi.264vule.,
Cini mi se da je to PASCAL, a ja nisam napomenuo da mi treba za BASIC....
Nema veze, pojasni mi malo program...
algoritmi.265ognjen,
)-> Nema veze, pojasni mi malo program...
for i:=1 to broj_linija-1 do
for j:=i+1 to broj_linija do
if (linija[i]>linija[j])
then
razmeni_linije(i,j);
Davno beše basic, ali da pojasnim. Ovo je inače najlakši
(svakako nije najbrži, ali je dovoljno efikasan za ono što ti
treba) algoritam za sortiranje.
Uslov IF proverava koja je linija pre koje u abecedi. Dakle
"PAJA">"PERA" nije tačno, jer je 'A'<'E'. Takođe "MIKA">"NESA" je
tačno, jer je 'M'>'N'. Dakle, gleda se prvo slovo koje se ne
poklapa. Nisam siguran da ovo radi ovako u basicu, pa napravi
sam proceduru za proveru.
Ovaj, gore opisani IF uslov radi po sledećem redosledu:
upoređuje 1,2 i zameni ako 2 treba da bude pre jedan. Pa 1,3, pa
1,4 do 1,n, i na kraju imaš na prvom mestu string koji treba da
bude prvi. Onda ide 2,3; 2,4... 2,n - uradio je i drugo mesto...
i tako dalje dok ne sredi ceo niz. Nadam se da je malo jasnije.
PS: pređi na pascal.
algoritmi.266vule.,
Treba mi algoritam za simulaciju gadjanja u igricama, kao u
DEZINTEGRATORS, SCORCH, WORMS, itd, znaci 2D(jacina,ugao,vetar)
Unapred zahvalan...
algoritmi.267kenza,
Hi!
Jel pisao neko algoritam za iks-oks? :) Za pocetak, standardni
teren - 3x3 polja, za kasnije moze i onaj 'padajuci' ;)
Poz.
algoritmi.268mihailod,
> Jel pisao neko algoritam za iks-oks? :) Za pocetak, standardni
> teren - 3x3 polja
Krstic-kruzic ili tic-tac-toe (u teoriji igara Connect-3) je
dosta proucavana igra. Najjednostavniji je heuristicki algoritam
koji igra nemastovito, ali zato nikad ne gubi, lako ga je
isprogramirati itd. Ogromna mana je u tome sto ga je nemoguce
uopstiti za vece dimenzije.
Nabacicu ovde osnovnu ideju:
if(igras prvi) {igraj u sredinu (dalje je lako)}
else
{
if(protivnik igrao u sredinu)
igraj u ugao (i dalje je lako...)
else igraj u sredinu (dalje je lako)
}
Na ovaj nacin broj strategija se smanjuje na smesnu cifru tako
da ih je moguce rucno iskodirati. Takodje, korisno je upotrebiti
i informaciju da su neke pozicije simetricne.
Malo ozbiljniji pristup se dobija upotrebom nekih rezultata iz
teorije igara. Pre svega, kako se radi o igri sa potpunom
informacijom (dakle, tabla i figure su na raspolaganju obojici
igraca - npr. poker je igra sa nepotpunom informacijom) i kako
je igra konacna (jer je polje konacno, a igra se do njegovog
popunjenja ili do zavrsetka igre (tzv. "sudden death" - npr. sah
je sudden death igra (sudden death je mat pozicija) dok neke
igre nisu - igra se do popunjenja table i onda broje poeni),
to po teoremi o antagonistickim igrama ta igra ima ravnoteznu
situaciju. Dakle, uvek se moze igrati na nereseno. To je sto se
suve teorije tice, a ozbiljan algoritam bi, recimo, koristio
minimax strategiju (uz opciono alfa-beta odesacanje). Uz ovu
poruku zakacen je fajl koji predstavlja jedan kompletan program
koji uz pomoc pomenutih tehnika igra Connect-3. Prouci ga i
iz njega ces saznati neke osnovne tehnologije programiranja
strateskih igara ovog tipa. Inace, program je skinut iz news
konferencije comp.ai.games .
> za kasnije moze i onaj 'padajuci' ;)
Ovo je tzv. ograniceni Connect-4. Algoritam je dosta slozeniji.
Nedavno je jedan holandjanin potpuno resio ovu igru. Tj.,
napisao je program koji sigurno dobija kao beli a sigurno igra
nereseno kao crni. Nemam taj program niti sors, ali imam
njegovu magistarsku tezu koja je zapravo cela posvecena toj
igri. Imam je u .ps formatu, oko 120 strana A4, podugacka je
(oko 700K .ps, to bi trebalo da se sabije na oko 200k .zip).
Ako te stvarno zanima, poslacu ti na mail... Ako jos nekog ovo
zanima, mogu i u temu. Inace, ako nameravas da pises program
koji igra Connect-4, toplo preporucujem citanje te teze.
sc_ttt.txtalgoritmi.269mipedja,
>.. Ako te stvarno zanima, poslacu ti na mail... Ako jos nekog
>.. ovo zanima, mogu i u temu. Inace, ako nameravas da pises
Ovo mi zvuci interesantno, shalji to ovde.
algoritmi.270morkin,
> njegovu magistarsku tezu koja je zapravo cela posvecena toj
> igri. Imam je u .ps formatu, oko 120 strana A4, podugacka je
> (oko 700K .ps, to bi trebalo da se sabije na oko 200k .zip).
> Ako te stvarno zanima, poslacu ti na mail... Ako jos nekog ovo
> zanima, mogu i u temu. Inace, ako nameravas da pises program
Šalji ovde, molim te.
algoritmi.271embe,
>>Jel pisao neko algoritam za iks-oks? :) Za pocetak, standardni
>>teren - 3x3 polja, za kasnije moze i onaj 'padajuci' ;)
Svojevremeno je ovde, u ovoj konferenciji bio organizovan turnir
programa za iks-oks. (Vidi poruku 1.62). Na tom takmicenju sam
slucajno ja pobedio :). Pobednicka verzija programa nalazi se zakacena uz
poruku 1.76. Njen source je u poruci 1.90.
Napomena, zadatak takmicenja je bio da program ne sme nikako da
izgubi, i MORA UVEK DA IGRA NAJJACE (svaku gresku protivnika mora da
kazni).
Takodje, program i protivnik naizmenicno igraju prvi potez.
S obzirom na drugi uslov, da se uvek igra najjace, univerzalni
algoritam koji bi ovo ispunjavao za table vece od 3x3 polja je jak
tesko (da ne kazem nemoguce - odmah ce mi neko skociti u usta :))))
Source je tu i jako je komplikovan, ali to je posledica samog
takmicenja koje je bilo tipa KO-PRE.
algoritmi.272mihailod,
Evo, na zahtev zainteresovanih, ide magistarska teza
Victor Allis-a (Holandija).
----------------------------------------------------
A Knowledge-based Approach of Connect-Four
The Game is Solved: White Wins
Victor Allis
Department of Mathematics and Computer Science
Vrije University
Amsterdam, The Netherlands
Master Thesis, October 1988.
----------------------------------------------------
reply for embe:
> tesko (da ne kazem nemoguce - odmah ce mi neko skociti u usta :))))
Da, teorija lepo zvuci, ali, nazalost, dokazi teorema o ravnteznoj
situaciji i teoreme o minimaksu spadaju u tzv. dokaze egzistencije.
Drugim recima, tvrdi se da nesto postoji ali se ne navodi nacin za
konstrukciju toga.
algoritmi.273mihailod,
da probam opet ul...
ako ne uspe bice ovih dana...
connect4.arjalgoritmi.274kajko,
Šta mislite o jednom turniru PROGRAMA Sezamovih korisnika u IKS-OKS samo
na većoj tabli.
Ajd' da čujem mišljenja...
O pravilima i načinu igre bi smo se dogovorili.
NPR: Mogli bi da igramo na tabli 21x21 i da se ide na 5 u nizu. Potez
bi bio ograničen na 20 sekundi, etc...
KAJKO
algoritmi.275mipedja,
>.. Sta mislite o jednom turniru PROGRAMA Sezamovih korisnika u
>.. IKS-OKS samo na vecoj tabli.
Meni se svidja ideja ( jeste da ne bih bash najslavnije prosao jer se
nikad nisam bavio teorijom igara ali...), glasam ZA :). Sto se toga tice,
glasam za bilo kakav oblik takmicenja.
algoritmi.276vasic,
> Šta mislite o jednom turniru PROGRAMA Sezamovih korisnika u IKS-OKS samo
> na većoj tabli.
> NPR: Mogli bi da igramo na tabli 21x21 i da se ide na 5 u nizu. Potez
> bi bio ograničen na 20 sekundi, etc...
k00l! :) Time se zabavljalo moje društvo pred kraj trećeg srednje, tamo
negde '89. Eh, kad se samo setim... Dok štreberi štrebaju nas nekoliko
punom parom pravi XOX v1042.56. Završio sam godinu sa prosekom od celih
4.50000. :)
Mislim da je ograničenje od 20 sec. više nego velikodušno. Moj tadašnji
program je razmišljao manje od sekunde a radio je na CPC-464. (8-bitni
Z80A, 4MHz - info za one koji su tad još bili mali :))
Trebalo bi smisliti neki način da programi razmenjuju poteze bez
ljudskog posredovanja - tadašnje igranje preko telefona bilo je prilično
naporno i podložno greškama. U najgorem slučaju, svaki program _mora_
imati funkciju za poništavanje poslednjeg odigranog poteza.
Anyway, ako budem imao vremena rado ću učestvovati na ovom takmičenju a
ako ne, pratiću ga sa zanimanjem.
algoritmi.277mipedja,
>.. Trebalo bi smisliti neki nacin da programi razmenjuju poteze
>.. bez ljudskog posredovanja - tadasnje igranje preko telefona
>.. bilo je prilicno naporno i podlozno greskama. U najgorem
>.. slucaju, svaki program _mora_ imati funkciju za ponistavanje
>.. poslednjeg odigranog poteza.
Ma ne, pogledaj fajl uz poruku 9.399, tamo je neko poslao zadatak i
propozicije slicnog takmicenja. Moglo bi lepo da se prepravi za nas.
Znaci islo bi otprilike ovako :
Svaki program igra po jedan potez za jedno startovanje i sve podatke
koji ce mu trebati za sledeci put snima u fajl sa prosledjenim mu imenom
(svako ima svoj i tu moze da pishe sta hoce).
Svi podaci o igri ( ko prvi igra, potez koji je odigrao protivnik itd.)
se pishu u fajl koji koriste oba programa.
Sve sto ostaje je da moderator ( ili ko je vec nadlezan za ovu temu)
napishe programce ( ili batch fajl) koji ce da startuje naizmenicno
programe dok partija ne bude gotova ( to ce da se oznaci nekom recju u
fajlu ili kreiranjem nekog novog fajla ...).
E, a necemo valjda da ostanemo samo na XOX-u ?
To nek nam bude samo pocetak ( razigravanje). Samo, nisam video da se
ijedno sluzbeno lice javilo da nas podrzi (ili im ja samo ne znam imena:)
BTW: Sorry ako sam se mnogo raspisao :)
algoritmi.278vasic,
> Svaki program igra po jedan potez za jedno startovanje i sve podatke
> koji ce mu trebati za sledeci put snima u fajl sa prosledjenim mu imenom
Moglo bi, ali ako već pravim XOX onda hoću da mogu i ja da se igram. :)
A i nekako mi je sve to ružno i glomazno. Voleo bih da može elgantnije.
Recimo - Win32 named pipe i par semafora, mada mi je jasno da to nema
šanse da prođe jer će sigurno biti ljudi koji bi hteli da rade u DOS-u
ili pod Win16 ili na ZX-81.
algoritmi.279hadzi,
█ Treba mi algoritam za simulaciju gadjanja u igricama, kao u
█ DEZINTEGRATORS, SCORCH, WORMS, itd, znaci 2D(jacina,ugao,vetar)
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Moj drug je imao nesto u pascalu, pa ako treba, javi mi na mail.
algoritmi.280drejk,
Zasto na mail da ti javi??
Baci u conf.
algoritmi.281mipedja,
>.. Moglo bi, ali ako vec pravim XOX onda hocu da mogu i ja da se
>.. igram. :) A i nekako mi je sve to ruzno i glomazno. Voleo
>.. bih da moze elgantnije. Recimo - Win32 named pipe i par
>.. semafora, mada mi je jasno da to nema sanse da prode jer ce
>.. sigurno biti ljudi koji bi hteli da rade u DOS-u ili pod
>.. Win16 ili na ZX-81.
OK, ja sam samo predlozio metod koji se vec uspesno upotrebljava.
Iskreno, ja nemam druge ideje ( a usput i ne znam da programiram pod
windows-ima) pa ako neko ima valjan predlog, neka pozuri, nemam jos mnogo
slobodnog vremena. :(
BTW: Programi ce definitivno morati da rade na svim sistemima ( i sa
svim standardnim kompajlerima)
algoritmi.282kajko,
>> Svaki program igra po jedan potez za jedno startovanje i sve podatke
>> koji ce mu trebati za sledeci put snima u fajl sa prosledjenim mu imenom
>> (svako ima svoj i tu moze da pishe sta hoce).
>> Svi podaci o igri ( ko prvi igra, potez koji je odigrao protivnik itd.)
>> se pishu u fajl koji koriste oba programa.
Ljudi, ja se sasvim slažem sa ovim. Trenutno nemam neki pametniji
predlog, osim, ukoliko neko nema dva računara kod kuće i stolicu sa
točkićima.
>> E, a necemo valjda da ostanemo samo na XOX-u ?
Ja se nadam da nećemo !!!
Neko je ponudio (mrzi me da ganjam sad ko) da se igra 10x10 padajući.
Nije loša ideja. Šta ostatak populacije kaže na to ?
Inace, ko će da pude organizator, koja su pravila, kada počinjemo,
etc...
I ja se slažem da malo požurimo...
KAJKO
algoritmi.283obren,
Pošto se zapodenula ideja oko turnira u XOX programima, evo jednog
prastarog XOX programa (Turbo Gomoku) koji mi stoji na disku ko zna
otkad.
xox.comalgoritmi.284embe,
>> Sta mislite o jednom turniru PROGRAMA Sezamovih korisnika u
>>IKS-OKS samo na vecoj tabli.
>> Ajd' da cujem misljenja...
>> O pravilima i nacinu igre bi smo se dogovorili.
Odlicna ideja. Ko se javlja da bude organizator? Ko hoce neka
izlozi kostur pravila, pa cemo ih za cas posla usaglasiti .
Sto se tice table sasvim je ok 21x21 sa 5 u nizu.
Komunikacija (prenosenje poteza) preko fajlova, stim sto bi neko
morao da napravi MASTER program za kontrolu poteza, proglasenje
pobednika i dodeljivanje poteza (citaj: pozivanje programa-takmicara).
algoritmi.285qpele,
Ka> Neko je ponudio (mrzi me da ganjam sad ko) da se igra 10x10
Ka> padajuci. Nije losa ideja. Sta ostatak populacije kaze na to ?
Mislim da je ovo daleko interesantnija ideja nego obican XOX.
Sto se nacina odigravanja tice, mislim da je najefikasnije da programi
kao ulazni parametar dobijaju prethodni potez protivnika, a da kao izlaz
salju svoj naredni potez, a da se programima ostavi sloboda da organizuju
datoteke u kojima ce se pamtiti svi potezi, trenutna situacija i sl.
Ovim ce se obezbediti da svako radi u kojem zeli programskom jeziku .
Samo jos treba napraviti program koji se koordinisati rad dva protivnicka
programa, sto nije veci problem.
algoritmi.286embe,
>> Ka> Neko je ponudio (mrzi me da ganjam sad ko) da se igra 10x10
>> Ka> padajuci. Nije losa ideja. Sta ostatak populacije kaze na to ?
>> Mislim da je ovo daleko interesantnija ideja nego obican XOX.
Kakav je to "padajuci" XoX ?
algoritmi.287kenza,
>> Kakav je to "padajuci" XoX ?
Znaci mogu da se dodaju iskljucivo jedan na drugi. Dakle, moras
prvo da igras na recimo A1 da bi mogao da odigras A2, pa onda A3
itd. Npr.:
5 X
4 O
3 X
2 O
1 X
(Sa leve strane su redni brojevi poteza)
Nadam se da si shvatio... Nije bas zgodno ovako za
objasnjavanje :)
Poz.
algoritmi.288kajko,
>> Odlicna ideja. Ko se javlja da bude organizator? Ko hoce neka
>> izlozi kostur pravila, pa cemo ih za cas posla usaglasiti .
>> Sto se tice table sasvim je ok 21x21 sa 5 u nizu.
>> Komunikacija (prenosenje poteza) preko fajlova, stim sto bi neko
>> morao da napravi MASTER program za kontrolu poteza, proglasenje
>> pobednika i dodeljivanje poteza (citaj: pozivanje programa-takmicara).
>>
Što bi reka N°1: 'Mačka je moja i ja ću je pojesti !'.
JA ću da budem organizator, so, slede pravila:
1° Igra se na polju 21x21 sa 5 u nizu.
2° Redovi i kolone moraju biti markirani brojevima i to: gornji levi
ugao je (1,1), a donji desni (21,21). Kako bi inače programi
razmenjivali poteze ?
3° Programi razmenjuju poteze preko datoteke 'POTEZ.XOX'. Ukoliko
je datoteka prazna ili ne postoji, to znači da program igra prvi.
Kad odigra potez, briše sadržaj datoteke 'POTEZ.XOX' i u njega smešta
svoj potez.
Koliko još datoteka treba samom programu, nije bitno. To je njegova
interna stvar gde će on u međuvremenu držati podatke o partiji.
4° Ukoliko je potez pobedonosni u datoteku se, pored koordinata stavlja
i kod 255.
5° Datoteka je organizovana ovako: prva dva bajta su red, a druga
dva bajta su vrsta. To znači da datoteka ima samo 4 (četiri) bajta.
U skladu sa prethodnom tačkom, ukoliko je odigrani potez doneo
pobedu, datoteka ima 5 (pet) bajtova.
6° Koordinate u datoteci moraju izgledati ovako: '0512' ili '2004', etc.
7° Program koji proglasi pobedu, a do nje nije došlo, automatski će biti
diskvalifikovan iz daljeg toka takmičenja. Poeni koje je skupio do tada
će ostati njegovi (neće se brisati iz tabele). Za program koji je
'izgubio' piše se rezultat 3:0 u njegovu korist.
8° Vremensko ograničenje za potez je maksimalno 15 sekundi (Intel 166).
9° Vizuelni prikaz toka partije je obavezan ! Kako bi inače ja video da li
je do pobede došlo ili ne. Program, kada odigra potez koji nije
pobedonosni, snima koordinate i izlazi bez pauze. Ukoliko je potez
pobedonosni, zvučni signal bi bio poželjan, kao i poruka i pauza.
10° Dok program razmišlja, na ekranu mora da stoje i koordinate poteza
protivnika. Kad se potez 'smisli' koordinate moraju biti prikazane
na ekranu.
11° Igra se po principu svaki sa svakim i na 3 (tri) dobijene partije.
12° Svaki korisnik može poslati samo jedan program.
13° Na turniru učestvuju SAMO programi korisnika SEZAM-a. Ništa sa Mreže nije
dobrodošlo.
14° Učestvuju SAMO programi za DOS okruženje (za početak...). Lično mislim
da je tako najbolje, jer neznaju svi programiranje po WIN-om, ali, ako
bude nekoliko programa i za WIN, što da ne... kasnije...
15° Rezultati će ići ovako: trenutna tabela u poruku, a podaci o svakom meču
u datoteku uz poruku.
16° Program koji masteriše partije i kreira izveštaje je moja briga.
Rok za slanje programa za I XOX turnir je 01.10.1997.
Programe šaljete meni na MAIL. Nakon svakog turnira, svi programi koji
su u njemu učestvovali, idu u conf, da ih svi mogu pogledati i
bolje se spremiti za sledeći turnir.
Dajte predlog kako da bodujemo programe i šta sve treba da bude na
tabeli. Lično mi se sviđa tabela z PCROBOTS takmičenja.
BTW: Da li da opterećujemo conf ili da formiramo grupu, pošto temu
u okviru nekog conf-a ne verujem da ćemo dobiti ?
KAJKO
algoritmi.289embe,
>>
>> JA cu da budem organizator, so, slede pravila:
>>
Uzeo bih slobodu da naglas razmisljam o pravilima
Tacke 1, 2 - OK.
>> 3° ...
>> Koliko jos datoteka treba samom programu, nije bitno. To je njegova
>> interna stvar gde ce on u meduvremenu drzati podatke o partiji.
Ovo mi se cini nedovoljno korektno. Recimo zelim da istestiram jedan
program u partiji sa samim sobom. Nastaje haos jer oba programa koriste
iste pomocne fajlove za svoj rad.
Obavezno se mora predvideti da program-koordinator odredjuje imena
fajlova koje ce programi-takmicari koristiti. Njihova imena ce
prosledjivati kao parametar komandne linije. Sto se tice broja
fajlova koji su potrebni jednom programu za cuvanje svoje pozicije
itd. apsolutno je dovoljan jedan fajl.
Tacke 4,5,6 - Ne svidja mi se koncepcija
>> 4° Ukoliko je potez pobedonosni u datoteku se, pored koordinata stavlja
>> i kod 255.
Pobedonosni potez ne treba da proglasava takmicar vec
program-koordinator. Ovo je ocigledno jer program-koordinator
mora biti sposoban da prepozna kraj partije posle svakog odigranog
poteza - prema tome izlisno je da se takav potez posebno obelezava.
Shodno ovome tacka 7 (o samoproglasenju pobede) je izlisna.
Tacka 6. - OK
>> 8° Vremensko ogranicenje za potez je maksimalno 15 sekundi (Intel 166).
Merenje vremena ? Kako ? Ako pricamo o DOS programima (a pricamo)
dok se neki takmicarski program "premislja" o potezu, program
koji bi bio zaduzen za mrenje vremena stoji. Tek kada takmicar
zavrsi i "iznedri" potez moze se utvrditi koliko dugo je on razmisljao
ali onda, po meni, sasvim je bez veze ponistiti mu potez jer je
prekoracio vreme. Znaci sustina je u tome da se proces "razmisljanja"
nekog programa ne moze prekinuti silom. Kazna za spore programe
je usmena kritika :)) a za one koji se "zaglavljuju" - gubitak
partije.
>> 9° Vizuelni prikaz toka partije je obavezan ! Kako bi inace ja video da li
>> je do pobede doslo ili ne. Program, kada odigra potez koji nije
Mislim da je bespotrebno da takmicarski program radi vizuelizaciju
partije. Prvo - cemu sluzi program-koordinator a drugo, mnogo grubo
izgleda "paljenje" grafike naizmenicno jednog i drugog programa.
Tacke 11,12,13,14 - OK.
ZAKLJUCAK:
E sad, nemoj da mislis da sam "ispljuvao" tvoje predloge.
Prvo, da ti se zahvalim sto si se zalozio i zalegao za ovo takmicenje.
Hteo sam samo da ukazem na neke nedostatke i ako smem, da uticem na
samu tehnologiju turnira.
Evo mojih predloga:
1. Mora se napraviti takav koordinatorski program koji ce voditi racuna
o svemu. (Pravio si robote za PCROBOTS pa znas o cemu pricam).
Naime, ovaj program ce kao ulazne parametre imati samo imena
takmicarskih programa, izvodice takmicenje pozivajuci naizmenicno
takmicare, prikazivati trenutnu situaciju, proglasavati pobednika itd.
2. Programi takmicari bice pozivani od programa koordinatora
(spolja nevidljivo) i kao rezultat davace svoj potez. Naravno,
imena fajlova (za svoj rad i za slanje rezultata) kao i poslednji
potez protivnika dobijace kao parametar sa komandne linije. I to
je sve sto oni treba da rade.
Takav koordinatorski program sam gotovo doveo do kraja. Jos mi je
ostalo da doradim samo neke sitnice pa cu ti ga predati.
Prvo cu ga poslati da se istestira a onda moze i postati koristan
onima koji prave takmicare - da ih mogu istestirati pre slanja na
takmicenje. Vazna opcija ovog programa je sto pored igre
PROGRAM-PROGRAM, omogucava i igru COVEK-PROGRAM i PROGRAM-COVEK
(naravno i COVEK-COVEK :)))
Program stize najkasnije sutra (18.09) i pratice ga uputsvo za
upotrebu.
Pozdrav, Milan.
algoritmi.290space.ace,
Malih komentara povodom pravila:
║ 3° Programi razmenjuju poteze preko datoteke 'POTEZ.XOX'. Ukoliko
║ je datoteka prazna ili ne postoji, to znači da program igra prvi.
║ Kad odigra potez, briše sadržaj datoteke 'POTEZ.XOX' i u njega smešta
║ svoj potez.
╚════
Mislim da je bolje ovako: program u stdin prima podatke o potezu protivnika
(ekvivalentno čitanju potez.xox), zatim na stdout piše svoj potez (takođe
ekvivalentno pisanju u potez.xox). Sad, postojao bi program (mediator),
koji bi sređivao sve ove podatke između dva programa u meču i snabdevao
ih podacima (ispis na stdout -> programski stdin). Valjda neko razume ovo?
Samim tim, mediator program bi i iscrtavao status partije i poteze, takođe
i proglašavao pobednika...
║ 4° Ukoliko je potez pobedonosni u datoteku se, pored koordinata stavlja
║ i kod 255.
╚════
...čime je nepotrebna stavka 4. Razumete li me?
║ 9° Vizuelni prikaz toka partije je obavezan ! Kako bi inače ja video da li
║ je do pobede došlo ili ne. Program, kada odigra potez koji nije
╚════
Ne znam na šta misliš, da li da program prikazuje tok partije ili nešto
drugo. Ako se napravi mediator, on će vršiti vizuelni prikaz na ekranu.
║ 13° Na turniru učestvuju SAMO programi korisnika SEZAM-a. Ništa sa Mreže
║ nije dobrodošlo.
╚════
Shvatite ovo kako hoćete, ali mene neće biti na sistemu za desetak dana,
pa se nadam da ću, kao "bivši" Sezamovac imati pravo da pošaljem svoj
program, valjda sam zaslužio? ;))
algoritmi.291kenza,
>> BTW: Da li da opterecujemo conf ili da formiramo grupu, posto temu
Ma, u conf. Ne verujem da je grupa dovoljno velika da primi sve
zainteresovane.
algoritmi.292embe,
Da ne citiram poruku, ovo je u vezi sa turnirom programa u iksoksu.
Kao sto sam najavio u poruci 1.289 zavrsio sam "beta" verziju
programa-kontrolora (odn.moderatora meceva) Uz program saljem i
takmicara (uslovno receno jer ovaj moze da pobedi samo sebe) ali
moze da posluzi za testiranje i kao sablon za pravljenje vasih
takmicara.
Sve sugestije su dobrodosle i voleo bih da cujem vase misljenje.
Pozdrav, Milan.
xox2121.zipalgoritmi.293nenad,
> 3° Programi razmenjuju poteze preko datoteke 'POTEZ.XOX'. Ukoliko
> je datoteka prazna ili ne postoji, to znači da program igra prvi.
> Kad odigra potez, briše sadržaj datoteke 'POTEZ.XOX' i u njega
> smešta svoj potez.
> Koliko još datoteka treba samom programu, nije bitno. To je njegova
> interna stvar gde će on u međuvremenu držati podatke o partiji.
Predlažem ti da uvedeš obavezu da oba programa prave log partije
u svoj fajl kao bi posle mogao da uporediš logove i na lak način
preduprediš bilo kakva varanja, samim tim i automatizuješ potpuno
celo takmičenje.
> BTW: Da li da opterećujemo conf ili da formiramo grupu, pošto temu
> u okviru nekog conf-a ne verujem da ćemo dobiti ?
Nema razloga da se priča ne nastavi ovde. Lepo bi bilo kada bi se
uveo i uslov da se nakon turnira prezentiraju sors-ovi, i kao
potvrda autentičnosti programa, i kao mogućnost da jedni od
drugih nešto naučimo.
algoritmi.294kajko,
>> >> 3° ...
>> Obavezno se mora predvideti da program-koordinator odredjuje imena
>> fajlova koje ce programi-takmicari koristiti. Njihova imena ce
Apsolutno se slažem.
>> >> 4° Ukoliko je potez pobedonosni u datoteku se, pored koordinata stavlja
Do tog zaključka sam i sam došao dok sam razmišljao o masterisanju.
Moraće biti gadnih tumbanja po onim pravilima :)
>> >> 8° Vremensko ogranicenje za potez je maksimalno 15 sekundi (Intel 166).
Vremensko ograničenje neće da bude...
>> >> 9° Vizuelni prikaz toka partije je obavezan ! Kako bi inace ja video da
li
Ispravno.
>> Takav koordinatorski program sam gotovo doveo do kraja. Jos mi je
Pošto ga ti već radiš, ja se neću bakćati s njim.
Kad ga pogledam, javiću...
=====
Moram da priznam da su mi u trenutku pisanja pravila, ona izgledala
sasvim logično, ali kad je na red došlo i pisanje programa, kako
takmičara, tako i mastera, uvideo sam velike omaške moje male mane,
brzopletosti.
Sugestije su više nego opravdane, so, hvala...
KAJKO
algoritmi.295kajko,
>> Shvatite ovo kako hoćete, ali mene neće biti na sistemu za desetak dana,
>> pa se nadam da ću, kao "bivši" Sezamovac imati pravo da pošaljem svoj
>> program, valjda sam zaslužio? ;))
Opet moja brzopletost...
Naravno da je svim dobronamernicima dozvoljeno da učestvuju. Samo sam
hteo da predupredim neke, nama znane, malverzacije...
I na kraju...
Dobrodošao si i ti i tvoj program...
KAJKO
algoritmi.296kajko,
>> Sve sugestije su dobrodosle i voleo bih da cujem vase misljenje.
Program je 'boli glava' kao i pravila koja nameće.
Ja ga predlažem za standard.
Hvala...
PS. Takmičenje će se izvoditi na njemu i po pravilima koja on nameće.
KAJKO
algoritmi.297kajko,
>> Sve sugestije su dobrodosle i voleo bih da cujem vase misljenje.
>>
Prilagodio sam svog takmičara (naravno, ako sme da učestvuje u turniru)
prema pravilima Master-programa, i radi super...
Imam par sugestija za master program:
1° Pored naziva igrač X i O uvesti nazive programa.
Na primer 'Igrac X: XOX.EXE' i 'Igrac O: KAJKO.EXE'
2° Nisam primetio neki LOG fajl. Mislim, pošto master vodi računa
o igri (proglašava pobednika, detektuje remi, ...) bilo bi
lepo da on snimi ceo tok partije u datoteku. Na primer:
XOX.EXE KAJKO.EXE
====================================
001: 10 07 09 07
002: 09 08 08 07
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
XXX: 10 10
====================================
Pobeda igraca X: XOX.EXE
3° Pošto se potezi oba igrača vide na ekranu, uvesti neke prekidače
u sam master kojim se može reći da odigrava poteze bez pauze
(osim kad objavi pobednika) ili, bar, sa pauzama posle odigranog
poteza oba programa.
Nadam se da će moje sugestije biti uzete u razmatranje.
Vrlo mi je bitan izgled LOG fajla, jer ću na osnovu njega da završim
program koji će biti Registrator takmičara. Naime, program će
registrovati takmičare, samim tim i potreban broj kola za sistem
svako_sa_svakim, izvlačiti parove, pozivati Master za odigravanje
partija, deliti bodove, praviti tabelu, generisati izveštaje
koji će biti slati ovamo, ... i td.
Kad budem znao izgled LOG fajla, završiću program i šutnuti ga ovde
na razmatranje i sugestije.
KAJKO
algoritmi.298kajko,
>> uveo i uslov da se nakon turnira prezentiraju sors-ovi, i kao
>> potvrda autentičnosti programa, i kao mogućnost da jedni od
>> drugih nešto naučimo.
>>
Programi takmičari će sigurno iši u conf, ali što se tiče sors-a,
to je LIČNA stvar samog autora programa, i ja tu ne mogu ništa.
Sors mog programa će, svakako, ići uz moj program.
KAJKO
algoritmi.299obren,
> Dve za opstinu, 0 za muske 5 (!) za zenske, dve cifre redni broj i
> jedna kontrolna cifra.
Moj matični broj je xxxxxxx782848, dakle nema nigde te nule koju
pominješ?
algoritmi.300embe,
>> Imam par sugestija za master program:
>>
>> 1° Pored naziva igrac X i O uvesti nazive programa.
>> Na primer 'Igrac X: XOX.EXE' i 'Igrac O: KAJKO.EXE'
Uradjeno.
>> 2° Nisam primetio neki LOG fajl. Mislim, posto master vodi racuna
>> o igri (proglasava pobednika, detektuje remi, ...) bilo bi
>> lepo da on snimi ceo tok partije u datoteku. Na primer:
>>
>> XOX.EXE KAJKO.EXE
>> ====================================
>> 001: 10 07 09 07
>> ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
>> XXX: 10 10
>> ====================================
>> Pobeda igraca X: XOX.EXE
LOG fajl nisam stigao da zavrsim za prvu verziju , jer sam zurio
da dovedem u red funkcionalnost programa. LOG fajl je sada uradjen.
LOG faj sadrzi sledece informacije:
ko je na potezu, kako se poziva (sa kojim argumentima) program
takmicar, sta je procitano iz fajla za razmenu poteza i koji
potez je odigran.
Naravno tu su i poruke ishodu meca i o greskama (i o vrsti greske)
jer pored pracenja toka partije LOG fajl treba da sluzi i za
"debug", pa sam tu "nakrkao" sve sto je meni bilo od pomoci pri
pravljenju mog programa-takmicara. Naravno izmene su moguce
>> 3° Posto se potezi oba igraca vide na ekranu, uvesti neke prekidace
>> u sam master kojim se moze reci da odigrava poteze bez pauze
>> (osim kad objavi pobednika) ili, bar, sa pauzama posle odigranog
>> poteza oba programa.
Pravo je cudo kako mislimo o istim stvarima. Uradjeno i ovo.
Sada postoje tri brzine : spora - zahteva pritisak na tastaturu
posle svakog poteza (default), srednja - odigrava bez prekida sa
pauzama od oko 1 sec, i brza brzina - nesto brza od srednje.
>> Nadam se da ce moje sugestije biti uzete u razmatranje.
Mnogo hvala. Sve je usvojeno.
>> Vrlo mi je bitan izgled LOG fajla, jer cu na osnovu njega da zavrsim
>> program koji ce biti Registrator takmicara. Naime, program ce
>> registrovati takmicare, samim tim i potreban broj kola za sistem
>> svako_sa_svakim, izvlaciti parove, pozivati Master za odigravanje
>> partija, deliti bodove, praviti tabelu, generisati izvestaje
>> koji ce biti slati ovamo, ... i td.
... i da kuva, pere ves, pegla ::)))
Pa sta ces onda ti da radis? Samo da stisnes dugme ? :)))))
Sto se tice LOG fajla i svih gore navdenih izmena, sve je
ugradjeno, ostala mi je nezavrsena samo sitna kozmetika.
Program saljem do otvaranja birackih mesta :)
Sto se tice toga da li moze tvoj program da ucestvuje -
naravno da moze. Jednostavan postupak za legalizaciju
celog takmicenja je sledeci:
PRE pocetka takmicenja, sve programe takmicare ubacis u
jednu sifrovanu ZIP arhivu (dobro je sifruj - ovde su
veliki hakeri :)) - sa puno malih i velikih slova), koju
posaljes ovde u konferenciju.
Kada se takmicenje zavrsi, u konferenciji objavis sifru.
(Sifruje se zato da takmicenje ne izgubi neizvesnost.)
Ovime se pruza mogucnost naknadne provere rezultata meceva
- prema tome nece biti nikakvih nepravilnosti.
algoritmi.301embe,
Evo master programa (programa-kontrolora) XOX2121 v.2.1b
Sve sugestije od strane KAJKA sam uvazio.
U arhivi se osim glavnog programa XOX2121.EXE i fajlova neophodnih
za njegov rad, nalazi i jedan program takmicar (XOX.EXE) skromnih
mogucnosti, koji je tu samo radi testiranja.
Obavezno procitati uputstvo koje se nalazi u fajlu README.1ST
a takodje prvi put startovati XOX2121 /? ,da bi se pogledao
spisak novododatih opcija.
Sve sugestije su dobrodosle, a takodje i ako ima nekih problema
u radu ovog programa ili u radu ovog programa sa vasim programima-
-takmicarima tu sam.
Evo XOX2121 v.2.1b i neka vam je sa srecom.
xox2121.zipalgoritmi.302snemcev,
>> Moj matični broj je xxxxxxx782848, dakle nema nigde te nule koju
>> pominješ?
Izvini što idem preko tvoje poruke, al' mi je dobro poslužila za
ilustraciju.
Redni broj upisa, koji je u matičnom broju posle dvocifrene šifre
opštine (ono 284 u tvom matičnom broju), je trocifren i za mušku decu
počinje od 001, a za žensku decu počinje od 501.
Ako je taj redni broj manji od 500, dete je muško, a ako je veći od 500,
dete je žensko. Simple as that.
algoritmi.303kajko,
Nakon dugotrajne razmene mišljenja i sugestija došlo je do značajnog
pomaka na bolje u vezi turnira XOX. Pravila za učešće na I XOX turniru
su znatno izmenjena, so, čitajte:
1° Igra se na polju 21x21 sa 5 u nizu.
2° Redovi i kolone moraju biti markirani brojevima i to: gornji levi
ugao je (1,1), a donji desni (21,21).
3° Program mora biti DOS EXE ili COM program. Što se tiče
veličine, ne bi trebalo da prelaze veličinu od 300Kb !!
Programski jezik nije bitan.
4° Mora da se obezbedi prenošenje argumenata sa komandne linije.
Argumenata ima ukupno četiri (4)
- Prvi argument je ime fajla koji se koristi za smeštanje
odigranog poteza. Taj fajl treba da bude tekstualni (ASCII)
fajl. Potez se zapisuje u obliku dva cela broja razdvojena
najmanje jednim spejsom (blankom).
Fajl treba da sadrzi samo jedan jedini potez.
Jos jedan uslov za taj fajl je da se zatvori kada se u njega
upiše potez (da bi master program (XOX2121) mogao da ga otvori i
procita njegov sadrzaj).
Potez se označava sa dva broja koji (svaki od njih) mogu biti
od 1 do 21. Šta je vrsta a šta kolona, odlučuje sam program.
- Drugi argument je ime fajla koji sam program-takmičar koristi
za svoje interne potrebe (da pamti poslednju poziciju na tabli,
svoje i tuđe poteze i šta god joć).
- Treći i četvrti argument predstavlja poslednji odigrani
potez protivnika. To su dva cela broja opsega od 1 do 21.
Takođe, šta je vrsta a šta kolona određuje sam
program-takmičar. Bitno je da je to usvojeno isto i za ulaz
i za izlaz.
Ukoliko je u pitanju prvi potez u partiji treći i četvrti
argument (poslednji odigrani potez protivnika) izostaju,
tj. program-takmičar se poziva samo sa prva dva argumenta:
Recimo da se program takmičar zove XOX.EXE
Program-kontrolor ce ga u slucaju da je u pitanju prvi potez u
partiji pozvati otprilike ovako:
XOX OUT.TXT TMP001
a zadatak XOX.EXE programa je da prepozna da je u pitanju
prvi potez, odluči gde će da igra, zapamti novonastalu
poziciju, snimi je u fajl TMP001 i taj potez snimi u
ASCII fajl OUT.TXT i naravno zatvori ga.
Svako sledece pozivanje ovog programa vršiće se sa joć dva
argumenta, npr. ovako:
XOX OUT.TXT TMP001 12 9
Naravno da ime fajla za cuvanje pozicije ostaje isto tokom
cele partije. Brojevi 12 odnosno 9, predstavljaju poslednje
odigrani potez protivnika. Oni su iskontrolisani i ispravni.
Zadatak XOX.EXE je da prvo učita staro stanje na tabli,
registruje potez protivnika, odluči se za svoj potez, snimi
novo stanje na tabli, a svoj potez odstampa u fajl OUT.TXT
Napomena: program-takmicar moze da otvara i zatvara samo
fajlove sa menima koje je dobio od programa-kontrolora.
5° Vremensko ograničenje za odigravanje poteza ne postoji.
Ukoliko se program zaglavljuje, automatski gubi meč.
6° Vizuelni prikaz toka partije 'nesme da bude'.
7° Igra se po principu svako sa svakim i to 6 (šest) partija.
Prvobitna ideja je bila da se igra na tri dobijene partije, ali bi
tada program koji igra prvi, bio u prednosti. Ovako će svaki program
imati podjednake šanse, jer 3 (tri) puta igra prvi i 3 (tri) puta
igra drugi.
8° Svaki korisnik može poslati samo jedan program.
9° Rezultati će ići ovako: trenutna tabela u poruku, a podaci o svakom
meču u datoteku uz poruku.
Rok za slanje programa za I XOX turnir je 01.10.1997.
Programe šaljete meni na MAIL. Pre početka turnira, svi programi koji
će u njemu učestvovati će ići u conf spakovani pod šifrom. Nakon
turnira, zajedno sa zaključnom tabelom ići će i ključ arhive, tako
da svako može da proveri rezultate na svom računaru.
Takmičenje će se izvoditi na EMBE-ovom programu za masterisanje
(poruka 300) te predlažem da ga svi zainterosovani za učešće na
turniru skinu. Uz njega dolazi i dokumentacija koje je i više nego
dovoljna. Neke delove iz dokumentacije sam prekucao (COPY-PASTE)
ovde za slučaj da nisu svi skinuli program. Samim tim, izvinjavam se
EMBE-u za citiranje bez pitanja.
Ostaje otvoreno pitanje bodovanja programa. Ukoliko nemate zamerki,
usvoio (nadam se da se tako piše !?) bih način bodovanja iz
takmičenja PCROBOTS. I tabela bi bila identična.
>> >> partija, deliti bodove, praviti tabelu, generisati izvestaje
>> >> koji ce biti slati ovamo, ... i td.
>>
>> ... i da kuva, pere ves, pegla ::)))
>> Pa sta ces onda ti da radis? Samo da stisnes dugme ? :)))))
Ja ću da se skoncentrišem na same programe i igru koju pružaju. Komentari
o svakom programu i odigranoj partiji će biti obimni. Bilo bi vrlo
mukotrpno ispuštati olovku i pritiskati dugme za sledeći potez (u drugoj
ruci mi je obično cigareta).
Verujem (a vi me razuverite) da će se tokom turnira iskristalisati
programi koji zavređuju pažnju, dok še drugi tu biti samo za gaženje i
prepuštanje bodova :). Takve mečeve ću vrlo malo komentarisati :>.
PS: Poruka je malo duža, ali vredi...
KAJKO
algoritmi.304embe,
>> Takmicenje ce se izvoditi na EMBE-ovom programu za masterisanje
>> (poruka 300) te predlazem da ga svi zainterosovani za ucesce na
>> turniru skinu. Uz njega dolazi i dokumentacija koje je i vise nego
Mala ispravka, program se nalazi u poruci 301.
>> Rok za slanje programa za I XOX turnir je 01.10.1997.
>> Programe saljete meni na MAIL. Pre pocetka turnira, svi programi koji
Moj takmicar je vec gotov ali sacekacu malo do njegovog slanja (da
ne budem bas prvi).
Jedna me stvar interesuje, a to je koliko ljudi stvarno namerava
da napravi svog takmicara? Ne bih da baksuziram ali nisam bas
veliki optimista. Najgore bi bilo da nas dvojica odigramo privatni
turnir u javnoj konferenciji.
Mozda bi trbalo da se ovaj turnir malo izreklamira u konferenciji
IGRE ? Na kraju krajeva ovo i jeste igra.
algoritmi.305kajko,
>> Jedna me stvar interesuje, a to je koliko ljudi stvarno namerava
>> da napravi svog takmicara? Ne bih da baksuziram ali nisam bas
>> veliki optimista. Najgore bi bilo da nas dvojica odigramo privatni
>> turnir u javnoj konferenciji.
Znas kako je...
Na početku je ideja naišla na veliki odjek, kao i mnoge druge. Ali, kad
dođe na red slanje takmičara onda bude ono: "Nisam stigao, ali...",
"...imam ispit, ali...", "...sa zanimanjem ću pratiti...", ...
Nadam se da neće biti tako...
>> Mozda bi trbalo da se ovaj turnir malo izreklamira u konferenciji
>> IGRE ? Na kraju krajeva ovo i jeste igra.
>>
Ideja nije loša, već urađeno !!!
KAJKO
algoritmi.306embe,
Evo jednog takmicara za igru XOX2121.
Ovo nije prijava za takmicenje. Pravi takmicar ceka zadati rok da bude
poslat. U medjuvremenu, igrajte XOX2121 sa ovim programom i testirajte
svoje programe u borbi sa njim.
karpov.arjalgoritmi.307tomcat,
> Jedna me stvar interesuje, a to je koliko ljudi stvarno namerava
> da napravi svog takmicara? Ne bih da baksuziram ali nisam bas
> veliki optimista. Najgore bi bilo da nas dvojica odigramo privatni
Ja sam uveliko zainteresovan :)
Sto se propozicija tice, predlazem da se dozvoli programima interno koriscenje
dodatnog fajla. Ja na umu imam ideju da program uci na greskama i za to je
potrebno da snima analize odigranih partija kako bi ih mogao koristiti.
Pozdrav,
.................................
tomcat@galeb.etf.bg.ac.yu
http://galeb.etf.bg.ac.yu/~tomcat
algoritmi.308embe,
>Ja sam uveliko zainteresovan :)
>Sto se propozicija tice, predlazem da se dozvoli programima interno koriscenje
>dodatnog fajla. Ja na umu imam ideju da program uci na greskama i za to je
>potrebno da snima analize odigranih partija kako bi ih mogao koristiti.
U principu (ali samo u principu) nemam nista protiv ovoga, ali mislim
da neces imati ama nikakve vajde od "ucenja na greskama". Razlog je
sledeci: Mec izmedju dva takmicara traje 6 partija. Za to vreme tvoj
takmicar (bez uvrede :)) nece nista "nauciti" (kako ovo blesavo zvuci)
jer je to isuvise malo partija da bi se osetio "napredak" na osnovu
"iskustva". Sledecem takmicaru moraju se dati isti uslovi kao i
prethodnom, sto znaci da tvoj takmicar opet ulazi u mec "bez
iskustva". Znaci fajl sa "iskustvom" mora da se obrise.
Znaci, tvoja ideja je neprimenljiva za turnir.
Druga je stvar da tvoj takmicar stigne na turnir sa "iskustvenim
fajlom" ali taj fajl se ne ne sme menjati u toku turnira zbog principa
ravnopravnosti svakog takmicara. To znaci da taj fajl moses samo da
citas a ne da pises u njega. A ako stvari tako stoje, onda se taj
fajl sa "zapecacenim iskustvom" moze ugraditi u EXE i onda prestaje
potreba za nekim drugim fajlovima.
algoritmi.309kajko,
>> U principu (ali samo u principu) nemam nista protiv ovoga, ali mislim
>> da neces imati ama nikakve vajde od "ucenja na greskama". Razlog je
Što se tiče 'učenja na greškama' ideja nije loša. Voleo bih da vidim
taj program, ali kao što reče EMBE, taj program je neupotrebljiv za turnir.
Svi programi na turniru su u jednom košu, stoga, moraju biti ravnopravni.
Ako možeš nešto da ga 'naučiš' do početka turnira, možeš. Na turniru
može da bude samo program, bez pratećih datoteka. To implicira ugradnju
'pameti' u sam EXE (ili COM) fajl.
Bliži se krajnji rok za slanje programa koji je 01.10.1997. godine.
Požurite...
KAJKO
algoritmi.310tomcat,
> >> U principu (ali samo u principu) nemam nista protiv ovoga, ali mislim
> >> da neces imati ama nikakve vajde od "ucenja na greskama". Razlog je
> Sto se tice 'ucenja na greskama' ideja nije losa. Voleo bih da vidim
> taj program, ali kao sto rece EMBE, taj program je neupotrebljiv za
turnir.
Imao sam tu ideju, jer mi je jednostavno bilo previse mukotrpno da razmisljam
o strategiji "linearnog" igranja ovakve vrste XOX-a. Onda sam uvideo da ni to
nije tako lako izvesti i presao da radim rekurzivan program (opet, mrzelo me
je da se udubljujem previse u strategiju). Uradio sam experiment sa dubinom od
4 polupoteza i mali se pokazao ne samo glup nego i spor (10-15 sec, P150+)
tako da sam danas primoran da predjem na izradu lineranog resenja.
Btw. Embe, svaka cast na onako brzo uradjenom masteru.
> Blizi se krajnji rok za slanje programa koji je 01.10.1997. godine.
> Pozurite...
Koliko se ljudi uopste prijavilo?
Da li ti pomenu sah negde? Imam uradjen i sahovski program :)
.................................
tomcat@galeb.etf.bg.ac.yu
http://galeb.etf.bg.ac.yu/~tomcat
algoritmi.311tomak,
> > Blizi se krajnji rok za slanje programa koji je 01.10.1997. godine.
> > Pozurite...
>
> Koliko se ljudi uopste prijavilo?
Nisam video prijave a posle slanja embe-ovog 'karpova' (koji i nije
kandidat) verovatno je bilo odustajanja. Sada mi se čini da kandidat koji
uspeva da ga pobedi dobija dozvolu za turnir :) pa 'prijavljujem' da ću
poslati svog kandidata.
algoritmi.312kajko,
Here I go again.
Narode, istekla mi pretplata u Subotu. Šćeo sam d*pe da si odgrizem.
Ali sad sam tu.
Prva prijava (osim moje) je već stigla. EMBE je poslao svog takmičara.
Nećemo valjda samo nas dvojica da se tabamo ?
KAJKO
algoritmi.313popovics,
>>Nećemo valjda samo nas dvojica da se tabamo ?
Nećete, ako mi detaljno objasniš kakav takmičar treba da bude.
========
P.S Jesi li zaboravio za uputstvo za TR?
algoritmi.314embe,
>> >>Necemo valjda samo nas dvojica da se tabamo ?
>>Necete, ako mi detaljno objasnis kakav takmicar treba da bude.
>> ========
Detaljno uputstvo je vec dato u ovoj konferenciji (poruke 1.301+...)
Prvo uzmi program-kontrolor (poruka 1.301). U njegovom uputstvu
detaljno je opisano kakav takmicat treba da bude.
Ako ima nekih problema, javi se.
algoritmi.315vector,
> Da li ti pomenu sah negde? Imam uradjen i sahovski program :)
Hoces da isprobas svog Gandalfa (valjda se tako zove)? ;)
algoritmi.316kajko,
Prijem takmirasskih programa za igru XO 21x21 je gotov
rezujtati ce biti izneti do kraja nedelje.
Kajko
algoritmi.318tomak,
> Prijem takmirasskih programa za igru XO 21x21 je gotov
> rezujtati ce biti izneti do kraja nedelje.
Moželi se znati koliko takmičara ima i hoće li biti ovoga:
CONF PCPROG.6:algoritmi.303
> Programe šaljete meni na MAIL. Pre početka turnira, svi programi koji
> će u njemu učestvovati će ići u conf spakovani pod šifrom. Nakon
> turnira, zajedno sa zaključnom tabelom ići će i ključ arhive, tako
> da svako može da proveri rezultate na svom računaru.
algoritmi.319kajko,
Počinje I XOX turnir. Takmičara ima ukupno 4 (slovima: četiri). Bedno...
Takmičari:
1. ANAND.COM -> embe
2. MALISA.EXE -> tomak
3. VINKOM.EXE -> vinkom
4. KAJKO.EXE -> kajko
--- I XOX Status Report ---
Rezultati 1. kola 'I XOX Turnir'-a:
đ Program đ Win đ Lo. đ Drw đ P đ %
-------------------------------------------------
1. ANAND.COM 0 6 0 0 33.333
MALISA.EXE 6 0 0 3 66.667
2. VINKOM.EXE 2 4 0 0 33.333
KAJKO.EXE 4 2 0 3 66.667
-------------------------------------------------
Ovo su bili prvi mečevi na osnovu kojih se malo može reći o kvalitetu programa
( koji doduše ni kod jednog takmičara nije na visokom nivou, ali su za početak
i više nego dobri :).
Iz plejade moram da izdvojim ANAND-a koji, kako se meni čini, nije dorastao
ostalim takmičarima. Embe-u usmena kritika (ne zbog brzine, već zbog
kvaliteta igre njegovog programa). Naime, ANAND ne igra na 'duže staze' već
samo po trenutnom stanju na tabeli. To se pokazalo kao katastrofalna
taktika. Mališa će sigurno daleko da dogura.
Drugi meč je bio meč približno jednakih programa. Kvalitetna igra bez
pardona. Pobedio je bolji :>.
Što se tiče bodovanja, uzet je 'fudbalski' sistem bodovanja. Pobeda = 3 poena,
nerešeno po 1, a poraz = 0 poena. Tako vam je, kako vam je.
Naime, samo takmičenje će ići malo ubrzanim tempom, jerbo sam dobio papire
za Nemačku, a tamo me pos'o već čeka :))))).
A sad...
RangLista posle odigranog 1. kola 'I XOX Turnir'-a:
No. đ Program đ OM đ Bod đ Procent đ Autor
-------------------------------------------------------------------------
1. MALISA.EXE 1 3 100.000 tomak
2. KAJKO.EXE 1 3 66.667 kajko
3. VINKOM.EXE 1 0 33.333 vinkom
4. ANAND.COM 1 0 0.000 embe
-------------------------------------------------------------------------
Uz poruku ide i arhiva u kojoj se nalaze podaci o mečevima i arhiva sa
takmičarima koja je spakovana pod šifrom. Šifra za otključavanje arhive
ići će u poruci sa zaključnom tabelom.
Sama arhiva uz poruku nije šifrovana :).
KAJKO
xox_i.zipalgoritmi.320embe,
>> Pocinje I XOX turnir. Takmicara ima ukupno 4 (slovima: cetiri). Bedno...
>>
>> Takmicari:
>> 1. ANAND.COM -> embe
>> 2. MALISA.EXE -> tomak
>> 3. VINKOM.EXE -> vinkom
>> 4. KAJKO.EXE -> kajko
Ne smatram da je 4 takmicara malo (za pocetak). Bice taman dovoljno da,
ako bog da, privuce jos toliko za sledeci turnir. Svaka tebi cast na
ekspeditivnosti.
>> Iz plejade moram da izdvojim ANAND-a koji, kako se meni cini, nije dorastao
>> ostalim takmicarima. Embe-u usmena kritika (ne zbog brzine, vec zbog
>> kvaliteta igre njegovog programa). Naime, ANAND ne igra na 'duze staze' vec
>> samo po trenutnom stanju na tabeli
Prvo da se odbranim od 'teskih' reci :)) Moj takmicar ima gresku (moja greska,
umesto da stavim >= stavio sam ==). Sto se tice igranja na duze staze,
gledajuci ostale takmicare, ni jedan ne igra vise od 1 poteza unapred, sto
i nije neko razmisljanje unapred, vec pracenje poznate seme.
Ni jedan takmicar nema razmisljanje za forsirani dobitak u 3 poteza, a
to bi bilo nekakvo razmisljanje na duze staze.
To sto ce moj takmicar da zavrsi na zacelju, posledica je jedne rupe u
odbrani i tako mi i treba sto brzam.
algoritmi.321tomak,
> Ne smatram da je 4 takmicara malo (za pocetak). Bice taman dovoljno da,
> ako bog da, privuce jos toliko za sledeci turnir. Svaka tebi cast na
> ekspeditivnosti.
E imam osećaj - da nisi okačio 'napoleona' bilo bi ih više.
> >> Iz plejade moram da izdvojim ANAND-a koji, kako se meni cini, nije
> dorastao >> ostalim takmicarima. Embe-u usmena kritika (ne zbog brzine, vec
> zbog >> kvaliteta igre njegovog programa). Naime, ANAND ne igra na 'duze
> staze' vec >> samo po trenutnom stanju na tabeli
>
> Prvo da se odbranim od 'teskih' reci :)) Moj takmicar ima gresku (moja
> greska, umesto da stavim >= stavio sam ==). Sto se tice igranja na duze
Hteo sam da sačekam kraj turnira, pa da iznesem svoje utiske, ali sada
moram da reagujem - pošto je Embe poslao program sa greškom. Mislim da je
Embe zaslužio da se takmičenje (tačnije bodovanje) PONOVI, sa njegovim
ispravljenim pogramom. Ovo zato što smo mi ostali mogli da ispravljamo
greške ... i sa njegovim 'napoleonom', zato što je učestvovao u
organizaciji, zato što je odma' uleteo sa svojim masterom, ... i bre da
nije sve to uradio - trebalo bi. Šta kažu na ovo Kajko i Vinkom a i ostali?
Ovom priliko bi' se zahvalio i Kajku na ideji i organizacji. Što se posla
tiče želim uspeha i sreće tamo u tuđini.
> greska, umesto da stavim >= stavio sam ==). Sto se tice igranja na duze
> staze, gledajuci ostale takmicare, ni jedan ne igra vise od 1 poteza
> unapred, sto i nije neko razmisljanje unapred, vec pracenje poznate seme.
> Ni jedan takmicar nema razmisljanje za forsirani dobitak u 3 poteza, a
> to bi bilo nekakvo razmisljanje na duze staze.
Što se 'razmišljanja' takmičara tiče, (mislim da) imam ideju kako bi mogao
da izgleda takav program - da napada sa 'prozmišljanjem' koji će potez da
odigra ...
algoritmi.322vule.,
Treba mi HERC.BGX da bi igrao XOX. Ako bi bili ljubazni da mi ga
posaljete...
algoritmi.323vinkom,
>> nije sve to uradio - trebalo bi. Sta kazu na ovo Kajko i Vinkom a
>> i ostali?
Sto se mene tice nema problema. Iskoristio bi priliku da
pohvalim samu ideju o organizovanju ovakvog takmicenja i izrazim zelju
da se ono i nastavi. Kad vidimo protivnicke programe imacemo otprilike
kriterij koliko mora biti dobar program takmicar, pa ce i svako
sledece takmicenje biti neizvesnije, a time i zanimljivije.
algoritmi.324tomak,
> Treba mi HERC.BGX da bi igrao XOX. Ako bi bili ljubazni da mi ga
> posaljete...
Evo ali vidi se samo 16x21.
herc.bgxalgoritmi.325embe,
>> Hteo sam da sacekam kraj turnira, pa da iznesem svoje utiske, ali
>>sada moram da reagujem - posto je Embe poslao program sa greskom. Mislim
>>da je Embe zasluzio da se takmicenje (tacnije bodovanje) PONOVI, sa
>>njegovim ispravljenim pogramom. Ovo zato sto smo mi ostali mogli da
>>ispravljamo greske ... i sa njegovim 'napoleonom', zato sto je ucestvovao u
>> organizaciji, zato sto je odma' uleteo sa svojim masterom, ... i bre da
>> nije sve to uradio - trebalo bi. Sta kazu na ovo Kajko i Vinkom a i ostali?
Mnogo hvala na zauzimanju za moj 'slucaj', ali ja prvi, nisam za
ponavljanje borbi mog takmicara iz prostog razloga sto bi to znacilo
izvestan popust za neke od takmicara (npr mene). Kakav je takav je -
prijavljen je za takmicenje, pa kom obojci kom opanci.
Jos jednom hvala na lepim recima, ali samo da se zna, moracete
napraviti mnogo bolje takmicare nebi li se iole ravnopravno nosili sa
mojim novim takmicarem :)))
algoritmi.326embe,
>> Treba mi HERC.BGX da bi igrao XOX. Ako bi bili ljubazni da mi ga
>> posaljete...
Bas lepo sto hoces da nam se pridruzis. S obzirom da ti treba HERC.BGX
pametno zakljucujem da imas Herkules, na kome program XOX2121 ne
prikazuje celu tablu. Evo za tebe, a i za sve ostale najnovija
verzija programa XOX2121 v.2.3 (cak sam stigao do ove verzije) koja
je nesto usavrsena a mislim da ce resiti tvoje probleme.
Sledi master program za XOX -> XOX2121 v.2.3b
Pozdrav.
xox2121.zipalgoritmi.327tomak,
> Jos jednom hvala na lepim recima, ali samo da se zna, moracete
> napraviti mnogo bolje takmicare nebi li se iole ravnopravno nosili sa
> mojim novim takmicarem :)))
Ovo sam očekivao, znači napred u nove pobede. :) Predložim da ne bude
novi turnir nego da pobednik ovog turnira nosi titulu pobednika, dok se ne
pojavi bolji koji će da preuzme titulu i tako da turnir neprestano traje.
algoritmi.328embe,
>> Predlazem da ne bude
>> novi turnir nego da pobednik ovog turnira nosi titulu pobednika, dok se ne
>> pojavi bolji koji ce da preuzme titulu i tako da turnir neprestano traje.
Ako sam dobro razumeo, sistem treba da je sledeci: pobednik turnira,
automatski se kvalifikuje za sledeci turnir, a autor pobednika ima
pravo da za novi turnir posalje jos jednog takmicara (kao u Ligi
sampiona u fudbalu ?)
Mozda bi to pravo trebao da ostvari i vicesampion, cisto radi
dinamicnosti, ali i iz prakticniog razloga da se turnir ne bi
pretvorio u "pobedi sampiona", sto bi mozda obeshrabrilo potencijalne
nove ucesnike.
Drugo, pada mi na pamet i liga, u kojoj bi takmicari sa manje od 50%
uspeha ispadali, i koja bi se posle svakog ciklusa obnavljala novim
takmicarima (bez obzira na preostale takmicare, opet bi svako mogao da
posalje po jednog takmicara). Mislim da bi ovaj sistem bio
najinteresantniji. Sta ostali misle ?
algoritmi.329tomak,
> Drugo, pada mi na pamet i liga, u kojoj bi takmicari sa manje od 50%
> uspeha ispadali, i koja bi se posle svakog ciklusa obnavljala novim
> takmicarima (bez obzira na preostale takmicare, opet bi svako mogao da
> posalje po jednog takmicara). Mislim da bi ovaj sistem bio
> najinteresantniji. Sta ostali misle ?
Meni izgleda dobra ideja. Mogla bi da postoji liga sa određenim brojem
takmičara i kad se pojavi novi (ili dva - tri nova) onda da se ponovi
turnih onih sa tabele sa tim novim. Koliko znam obično iz niže u višu ligu
idu dva takmičara, ovde bi mogao i samo jedan da se pojavi i da se ponovi
turnir i ako je bolji najmanje od poslednjeg da taj poslednji ispada ako
prelazi kvotu prve lige ... Trebalo bi da mogu i oni sa tabele da šalju
drugog takmičara ali da na tabeli mogu da imaju samo po jednog.
algoritmi.330tomcat,
> > Da li ti pomenu sah negde? Imam uradjen i sahovski program :)
>
> Hoces da isprobas svog Gandalfa (valjda se tako zove)? ;)
Eeee.. kako znas?
algoritmi.331vector,
> > Hoces da isprobas svog Gandalfa (valjda se tako zove)? ;)
>
> Eeee.. kako znas?
Poruka broj 5.304 u ovoj konferenciji. :)
algoritmi.332tomak,
> RangLista posle odigranog 1. kola 'I XOX Turnir'-a:
>
> No. đ Program đ OM đ Bod đ Procent đ Autor
> -------------------------------------------------------------------------
> 1. MALISA.EXE 1 3 100.000 tomak
> 2. KAJKO.EXE 1 3 66.667 kajko
> 3. VINKOM.EXE 1 0 33.333 vinkom
> 4. ANAND.COM 1 0 0.000 embe
> -------------------------------------------------------------------------
Taman sam hteo da pitam hoće li biti nastavka ali tad se setih da je na
tabeli moj takmičar na prvom mestu. Posle tog prisećanja (umesto da pitam
kad će nastavak) poručujem Kajku - nemoj da žuriš. :)
algoritmi.333kajko,
>> Drugo, pada mi na pamet i liga, u kojoj bi takmicari sa manje od 50%
>> uspeha ispadali, i koja bi se posle svakog ciklusa obnavljala novim
>> takmicarima (bez obzira na preostale takmicare, opet bi svako mogao da
>> posalje po jednog takmicara). Mislim da bi ovaj sistem bio
Ja glasam za ovaj predlog.
KAJKO
algoritmi.334kajko,
--- I XOX Status Report ---
Rezultati 2. kola 'I XOX Turnir'-a:
đ Program đ Win đ Lo. đ Drw đ P đ %
-------------------------------------------------
1. MALISA.EXE 2 4 0 3 100.000
VINKOM.EXE 4 2 0 0 0.000
2. KAJKO.EXE 6 0 0 3 100.000
ANAND.COM 0 6 0 0 0.000
-------------------------------------------------
RangLista posle odigranog 2. kola 'I XOX Turnir'-a:
No. đ Program đ OM đ Bod đ Procent đ Autor
-------------------------------------------------------------------------
1. KAJKO.EXE 2 6 83.334 kajko
2. MALISA.EXE 2 3 66.667 tomak
3. VINKOM.EXE 2 3 50.000 vinkom
4. ANAND.COM 2 0 0.000 embe
-------------------------------------------------------------------------
KAJKO
xox_ii.zipalgoritmi.335kajko,
--- I XOX Status Report ---
Rezultati 3. kola 'I XOX Turnir'-a:
đ Program đ Win đ Lo. đ Drw đ P đ %
-------------------------------------------------
1. VINKOM.EXE 6 0 0 3 66.667
ANAND.COM 0 6 0 0 33.333
2. KAJKO.EXE 4 2 0 3 66.667
MALISA.EXE 2 4 0 0 33.333
-------------------------------------------------
RangLista posle odigranog 3. kola 'I XOX Turnir'-a:
No. đ Program đ OM đ Bod đ Procent đ Autor
-------------------------------------------------------------------------
1. KAJKO.EXE 3 9 75.000 kajko
2. VINKOM.EXE 3 6 75.000 vinkom
3. MALISA.EXE 3 3 50.000 tomak
4. ANAND.COM 3 0 0.000 embe
-------------------------------------------------------------------------
KAJKO
xox_iii.zipalgoritmi.336kajko,
Završen je I XOX turnir.
Svi programi su ostavili dobar utisak na turniru. Za početak, nije loše.
Moram da priznam da je bilo veoma zanimljivo izvoditi ovo takmičenje.
Stvarno sam uživao posmatrajući programe i proučavajući logiku koju
koriste. Ponavljam, za početak, nije loše !
Šifra za otključavanje arhive sa takmicarima je: 1234567890
""""""""""
U arhivi se, pored mog takmičara, nalazi i njegov izvorni kod pisan u
TC 1.00.
Moj odlazak u tuđinu ništa ne menja u samom toku ove konferencije. Jedino
će frekfencija mog javljanja biti malo ređa (Ehhh, da može TelNet...).
Za zadovoljstvom ću učestvovati i na narednom turniru po pravilima koja
se usvoje. Samo će organizator turnira morati biti neko drugi.
Čim mi se ovde otvori nalog, javiću moju novu E-Mail adresu za kontakt.
Za sada ostaje samo ova na Sezu.
PS: Hvala svima na lepim željama 'za brzo (finansijsko) ozdravljenje'.
KAJKO
algoritmi.337tomak,
> RangLista posle odigranog 3. kola 'I XOX Turnir'-a:
>
> No. đ Program đ OM đ Bod đ Procent đ Autor
> -------------------------------------------------------------------------
> 1. KAJKO.EXE 3 9 75.000 kajko
> 2. VINKOM.EXE 3 6 75.000 vinkom
> 3. MALISA.EXE 3 3 50.000 tomak
> 4. ANAND.COM 3 0 0.000 embe
> -------------------------------------------------------------------------
Čestitam Kajku i Vinku.
Inače, takmičara sam nazvao 'mališa' jer sam pretpostavio da će biti
'najteži'...
KAJKO.EXE 14,668
VINKOM.EXE 8,032
ANAND.COM 20,556
MALISA.EXE 21.408
Uz poruku je takmičar (u arhi laki.arj) koji je bio alternativa 'mališi',
više je okrenut napadu (napadniji je ali napadajući pravi greške ...).
laki.arjalgoritmi.338embe,
>> RangLista posle odigranog 3. kola 'I XOX Turnir'-a:
>>
>>No. d Program d OM d Bod d Procent d Autor
>>-------------------------------------------------------------------------
>> 1. KAJKO.EXE 3 9 75.000 kajko
>> 2. VINKOM.EXE 3 6 75.000 vinkom
>> 3. MALISA.EXE 3 3 50.000 tomak
>> 4. ANAND.COM 3 0 0.000 embe
>>-------------------------------------------------------------------------
Cestitam pobednicima i zahvaljujem organizatoru na angazovanju.
Sta reci posle zavrsetka prvog turnira, nego da nije bilo primedbi i
da je najbolji pobedio. Rukavica je bacena, ustanovljen je odredjeni
nivo kvaliteta takmicara u odnosu na koji treba da se autori novih
takmicara ravnaju (naravno pri tome ne mislim na mog takmicara koji
je ocigledno razocarao :)))
Jos jednom pozdrav takmacima, spremajte jos bolje takmicare.
Takodje, poziv svima onima koji misle da mogu da naprave inteligentan
program za igranje XOX-a da se ukljuce, i spreme svog takmicara za
sledeci turnir.
algoritmi.339embe,
>> Moj odlazak u tudinu nista ne menja u samom toku ove konferencije.
>>Jedino ce frekfencija mog javljanja biti malo reda (Ehhh, da moze
>>TelNet...). Za zadovoljstvom cu ucestvovati i na narednom turniru po
>>pravilima koja se usvoje. Samo ce organizator turnira morati biti
>>neko drugi.
Ako niko nema nista protiv, mogao bih se prihvatiti organizacije
novih turnira. Ako glasate za mene, obecavam vam fer i postenu borbu,
i uredno izvodjenje takmicenja :)))
Ako je vreme da se saopste nova pravila, evo ih:
* Pravila su ista kao i do sada, znaci igra svako sa svakim po 6
(sest) partija sa naizmenicnim prvim potezom.
* Pobeda u mecu donosi 3 poena, nereseno 1 a poraz 0 poena.
* Igra se liga iz koje posle svakog turnira ispadaju oni koji imaju
manje od 50% uspeha (manje od 50% osvojenih bodova)
* Za svako novo takmicenje, pojedinac moze da prijavi jednog
takmicara. Oni kojima su takmicari ostali u ligi takodje se
dozvoljava da prijave jednog novog takmicara.
* II XOX Turnir pocinje u subotu 18. oktobra, a rok za slanje
takmicara je petak 17. oktobar u 24:00. Slanje takmicara -> meni na
mail.
* Iz I XOX Turnira na osnovu rezultata, za II XOX Turnir automatski su
prijavljeni prvoplasirani i drugoplasirani takmicari KAJKO.EXE i
VINKOM.EXE jer imaju osvojenih 9 od 9 i 6 od 9 bodova.
* Takmicenje se odvija posredovanjem master programa XOX2121 koji se
moze skinuti iz poruke 1.326.
Pozdrav svim sadasnim i buducim takmicarima.
Milan.
algoritmi.340tomak,
> Ako niko nema nista protiv, mogao bih se prihvatiti organizacije
> novih turnira. Ako glasate za mene, obecavam vam fer i postenu borbu,
> i uredno izvodjenje takmicenja :)))
Bilo bi bolje kad bi bio neko ko ne učestvuje jer pretpostavljam da ćeš
učestvovati sa takmičarem ali ako nema ko - glasam za tebe :) (prihvatajući
obećanje :)).
Ostalo se prihvata - jednoglasno. :)
algoritmi.341embe,
Subject: II XOX turnir (sa posebnim osvrtom na pobednike I XOX turnira)
Testirao sam mog novog takmicara sa svim ucesnicima prvog turnira.
Zapazanja su mi sledeca :
- kajko.exe je jako dobar, igra brzo (nisam gledao source koji je
autor velikodusno obnarodovao, i po meni, napravio gresku, jer
njegov source neko moze zloupotrebiti i doci na ideju da samo vrsi
minorne ili nikakve modifikacije na tom kodu i tako pravi 'svog'
takmicara). Ovaj takmicar igra prilicno racionalno, ali nesto je
slabiji u odbrani i pozicijama u kojima 'nema sta da se igra'.
Ponasa se kao Tajson kada se borba produzi preko osam rundi - gresi.
Naime, u jednoj partiji sa mojim novim takmicarom igrao se vec 150 i
neki potez (!), i pozicija je bila remi (tj. nije bilo teorije da neko
pobedi), kajko.exe je odigrao pogresan potez i master program ga je
diskvalifikovao. Treba popraviti ovaj bag.
- vinkom.exe je po meni najcudniji takmicar od svih. Cudan je zbog toga
sto su njegovi potezi, kada napada, prosto genijalni, ali kada se brani...
Treba mu malo popraviti igru u odbrani i to ce biti strasan borac.
Igra malo sporije od Kajkovog takmicara a duzina razmisljanja je
konstantna, igrao se prvi ili stoti potez.
- malisa.exe (autor tomcat) je zauzeo trece mesto na turniru. Moj
takmicar koga testiram, 'slistio' je kajko.exe i vinkom.exe sa po 5:1
i taman sam hteo da kazem - to je to, i da zavrsim sa 'stelovanjem'
mog takmicara, kad pomislih - ajde da 'slistim' i 'malisu' kad ono...
rezultat 3:3 i to uz dva NERESENA(!) meca. Bas neresena, igralo se do
poslednjeg slobodnog polja, 221 potez. Opasan 'mali'! To je dokaz da
ima dobru, bolje reci odlicnu odbranu, ali donekle slabost mu
predstavlja igra u odbrani - dokaz su porazi protiv ofanzivnih
takmicara kajko.exe i vinkom.exe. Malo da se odbrana i napad
izbalansiraju i bice to strasan 'mali'. Brzina igranja se smanjuje
posle svakog odigranog poteza, i posle stotog poteza postaje neprijatno
spor. A ja sam ga terao i do 221-og poteza (pravo mucenje :)))
Jedan predlog se namece, igrajuci mnogo dugackih meceva, a to je
da se ne igra do 221. poteza nego do ustanovljenja remija. Remi je
pozicija kada niko ne poseduje sansu za spajanje pet u nizu, tj.
sve je blokirano. Ugradio sam to u 'master' program tako da postedi
organizatora bezveznog random glupiranja takmicara. Sta mislite o tome?
----------------
Saljite takmicare meni na mail, rok za prijavljivanje na II XOX turnir
je petak, 18.10. u 24:00.
PS. Moj takmicar tuce sva tri, sa ne manje od 5:1 :))) Ucinite nesto!
algoritmi.342tomak,
O pobednicima imam slična zapažanja sa malim dodatkom.
> - vinkom.exe je po meni najcudniji takmicar od svih. Cudan je zbog toga
Ovo je najkraći program i možda bi bio malo duži da je VinkoM mogao
prvo da vidi ostale takmičare (pre turnira) ...
> - malisa.exe (autor tomcat) je zauzeo trece mesto na turniru. Moj
Mene su zvali i tomca ali nije mi to user.
> takmicar koga testiram, 'slistio' je kajko.exe i vinkom.exe sa po 5:1
> i taman sam hteo da kazem - to je to, i da zavrsim sa 'stelovanjem'
> mog takmicara, kad pomislih - ajde da 'slistim' i 'malisu' kad ono...
> rezultat 3:3 i to uz dva NERESENA(!) meca. Bas neresena, igralo se do
Izvinjavam se ali ovo sam morao da ponovim. :)
> izbalansiraju i bice to strasan 'mali'. Brzina igranja se smanjuje
> posle svakog odigranog poteza, i posle stotog poteza postaje neprijatno
> spor. A ja sam ga terao i do 221-og poteza (pravo mucenje :)))
Sećam se da sam pročitao da je za ono prvo takmicenje (3X3) DZakic
napisao da ne treba pisati programe sa IF naredbama nego da treba da bude
algoritam (otprilike tako). 'Malisa' je napisan sa IF naredbama, ;( zato
i biva spor a zato se i zove tako. Ako uspem da ove IF-ove 'sredim' i ako
... daću mu ime po svom useru (valjda mu to neće smetati :)) i biću tako
bezobrazan da ću, u temu koja se zove algoritmi, ponovo da pošaljem svog
takmičara.
> Saljite takmicare meni na mail, rok za prijavljivanje na II XOX turnir
> je petak, 18.10. u 24:00.
Znači da bi rok bio 17.10 u 24:00 da ti okačiš svoj u konf'u (pod
šifrom), ovo zato da se postigne ravnopravnost. Napominjem da je ovo
primedba formalne prirode i (naravo) nema ništa lično u sebi.
algoritmi.343embe,
>>> - malisa.exe (autor tomcat) je zauzeo trece mesto na turniru. Moj
>> Mene su zvali i tomca ali nije mi to user.
Mnogo se izvinjavam.
>> Znaci da bi rok bio 17.10 u 24:00 da ti okacis svoj u konf'u (pod
>> sifrom), ovo zato da se postigne ravnopravnost. Napominjem da je ovo
>> primedba formalne prirode i (naravo) nema nista licno u sebi.
Apsolutno na mestu. Niko jos nije prijavio takmicara pa je sada pravo
vreme da kao organizator javno prijavim svog. Naravno pod sifrom je.
Dakle i formalno, vise ne postoje prepreke za prijavu takmicara.
Evo DEFENDER.EXE -a:
defender.zipalgoritmi.344qpele,
subj: xox
Kako stvari stoje verovatno cu do petka i ja da zavrsim mog takmicara
tako da se konjkurencija povecava :)
algoritmi.345embe,
subj. II XOX turnir.
Sutra (17.10.97) u 24:00 istice rok za prijavu takmicara.
Zato, pozurite sa slanjem svojih takmicara, da vam posle ne bi bilo
zao.
Takmicari se salju meni u mail.
Turnir pocinje, kao sto je ranije objavljeno, u subotu 17.10.97.
algoritmi.346tomak,
> subj. II XOX turnir.
>
> Sutra (17.10.97) u 24:00 istice rok za prijavu takmicara.
Poslao sam svog (doteranog) starog takmičara. Trebalo bi mi više vremena
da bude brži.:(
algoritmi.347embe,
subj. II XOX turnir.
>> Poslao sam svog (doteranog) starog takmicara. Trebalo bi mi vise
>> vremena da bude brzi.:(
Sto se tice brzine, uopste nije bitna, ono moje zapazanje je bilo
cisto 'statisticki' podatak.:))
Nego, tvoj takmicar, jedini, u svoj fajl za 'memoriju' pise dotad
odigrane poteze, a ne trenutnu poziciju. Zar ne ? I svaki put fajl
je sve duzi. Ne znam sta jos pises u fajl, ali posle dosta odigranih
poteza, imam osecaj da je fajl mnogo mnogo veci od slicnog fajla
ostalih takmicara. Mozda je to razlog za smanjenu brzinu ?
algoritmi.348tomak,
> Nego, tvoj takmicar, jedini, u svoj fajl za 'memoriju' pise dotad
> odigrane poteze, a ne trenutnu poziciju. Zar ne ? I svaki put fajl
> je sve duzi. Ne znam sta jos pises u fajl, ali posle dosta odigranih
> poteza, imam osecaj da je fajl mnogo mnogo veci od slicnog fajla
> ostalih takmicara. Mozda je to razlog za smanjenu brzinu ?
Jeste i on je duži nego što bi mogao biti. Nisam ustvari ni stigao da
radim na brzini, radio sam na samoj igri a brzinu sam (retorički) spomenuo
kao sledeću stvar koju sam hteo da uradim i da sam imao vremena mislim da
bi bio brži. Inače, pišem program u paskalu a čini mi se da su ostali
takmičari pisani u C-u. Pretpostavljam da zbog ovog poslednjeg (ma kako
ga ubrzavao) mora biti razlike u brzini.
algoritmi.349embe,
subj: II XOX Turnir.
Duboko se izvinjavam zbog kasnjenja turnira. Iako sam obecao da ce se
turnir odrzati na vreme, obecanje nisam ispunio iz tehnickih razloga.
Naime desava mi se krecenje stana, naravno racunar nije u operativnom
tanju, a uz to i alternativno resesenje me je izneverilo tako da sam
prinudjen da odlozim pocetak takmicenja za sredu 22.10.
za takmicenje je prijavljeno 6 takmicara:
KAJKO.EXE,VINKOM.EXE,VINKOM01.EXE,MALISA.EXE,ZHIVADIN.EXE i
DEFENDER.EXE.
Ako bog da prvi izvestaj stize u sredu 22.10 u vecernjim casovima.
algoritmi.350tomak,
> za takmicenje je prijavljeno 6 takmicara:
> KAJKO.EXE,VINKOM.EXE,VINKOM01.EXE,MALISA.EXE,ZHIVADIN.EXE i
^^^^^^^^^^
> DEFENDER.EXE.
Prijavio sam MALISHA.EXE, što i nije mnogo bitno.
^
algoritmi.351embe,
>> Prijavio sam MALISHA.EXE, sto i nije mnogo bitno.
Lapsus finger :). Izvini.
algoritmi.352embe,
subj. II XOX turnir.
Napokon pocinje II XOX turnir.
Pravo na ucesce stekli su sledeci takmicari:
kajko.exe - autor: KAJKO (pobednik I XOX turnira)
vinkom.exe - autor: VINKOM (drugoplasirani sa I XOX turnira)
malisha.exe - autor: TOMAK
vinkom01.exe - autor: VINKOM
zhivadin.exe - autor: QPELE
defender.exe - autor: EMBE
Sta da izjavim na pocetku? Pridruzio nam se novi autor QPELE, TOMAK je
poslao novu verziju svog vrlo dobrog takmicara, VINKOM kao da nije
zadovoljan osvojenim drugim mestom na I turniru pa je poslao svog drugog
takmicara, KAJKO uziva na lovorikama, a EMBE (tj. ja) je zeljan skalpova...
Uskoro ce se sve razjasniti...
Turnir ce se sastojati od pet kola. Izvuceni su sledeci takmicarski
brojevi:
1. MALISHA.EXE
2. DEFENDER.EXE
3. ZHIVADIN.EXE
4. KAJKO.EXE
5. VINKOM.EXE
6. VINKOM01.EXE
U prvom kolu sastaju se:
MALISHA.EXE - DEFENDER.EXE
ZHIVADIN.EXE - KAJKO.EXE
VINKOM.EXE - VINKOM01.EXE
Svi parovi su interesantni, ne bih ni jedan mec obelezio kao derbi.
Prvi par je sudar dva potpuno nova takmicara, pa je prognoza teska.
Drugi par, po meni predstavlja zestoki test za 'pridoslicu'. Ko zna,
mozda kajko.exe bude srusen vec na pocetku ?
Treci par moze da pokaze koliko je nova verzija bolja ili losija od
stare. Ako nova verzija 'razbuca' staru (vrlo dobru) onda nam se svima
lose pise...
Toliko za pocetak. Izvestaj o prvom kolu sledi.
algoritmi.353embe,
subj. II XOX Turnir.
Rezultati 1. kola:
MALISHA : DEFENDER 3,5 : 2,5 (1 remi)
ZHIVADIN : KAJKO 5 : 1
VINKOM : VINKOM01 0 : 6
Tabela posle 1. kola
_____________________________________________
1. VINKOM01 1 1 0 0 6:0 3
2. ZHIVADIN 1 1 0 0 5:1 3
3. MALISHA 1 1 0 0 3,5:2,5 3
4. DEFENDER 1 0 0 1 2,5:3,5 0
5. KAJKO 1 0 0 1 1:5 0
6. VINKOM 1 0 0 1 0:6 0
_____________________________________________
(kolone u tabeli redom znace: odigrao meceva, pobede, nereseno,
izgubljeno, 'gol-razlika' i broj bodova)
E sada malo komentara:
Prvi mec, prava iscrpljujuca borba dva gotovo podjednaka takmicara.
Ne samo da su priblizno jednaki po snazi vec i taktika im je gotovo
ista: odbrana, odbrana i samo odbrana. Interesantno je da oba
takmicara igraju bolje kada ne vuku prvi potez. DEFENDER je imao
malo manje srece i izgubio. Svaka cast MALISHI, igrao je kao Karpov,
neatraktivno ali jako i korisno.
Drugi mec, sta da vam kazem. Sve sto sam video je bilo da je KAJKO
uleteo u 'masinu' (i to za ves i jos na centrifugiranje :))).
Pobeda ZHIVADINA je tako cista i ubedljiva da je za mene pravo cudo
bila pobeda KAJKA u poslednjoj partiji. Elem, KAJKO je postigao pocasni
pogodak, videcemo da li ce ostali moci i to da urade protiv strasnog
ZHIVADNA.
Treci mec, valjda zbog toga sto su se sastali takmicari istog autora,
meni uopste nije bio interesantan. VINKOM01 je slistio svoga
prethodnika, ali da stvar bude (ne)interesantna partije su se
ponavljale, tako da sam ladno mogao da pustim samo prvu i drugu partiju,
i da izvestaj tri puta iskopiram. Doduse, ima nekih razlika u cetvrtoj i
petoj partiji ali, te razlike su pred kraj, i ne menjaju moju ocenu.
Sa druge strane, gledajuci VINKOM.EXE i VINKOM01.EXE u akciji, mogu
samo da izjavim 'Ala ga je opravio..., svaka mu cast'
Toliko za prvo kolo. Posle prvog dolazi drugo kolo. A u drugom kolu
sastaju se:
MALISHA : ZHIVADIN
DEFENDER : VINKOM
KAJKO : VINKOM01
Svi su mecevi interesantni (dok se ne dokaze suprotno:))
Derbi je svakako prvi mec, ja blagu, najblazu prednost dajem
ZHIVADINU , ali ko zna.
Drugi mec je mnogo manje neizvestan i tu je DEFENDER izraziti favorit.
(ovo smem da tvrdim jer je VINKOM.EXE bio sparing partner u procesu
pravljenja DEFENDER-a)
U trecemi mecu, iz verovatno istih razloga, VINKOM01 je favorit.
Ali, iznenadjenja su moguca (i pozeljna :))
Uz poruku je zakacena arhiva sa izvestajima sa meceva 1. kola.
Takodje tu je i sifrovana arhiva sa svim takmicarima.
uz1kolo.zipalgoritmi.354embe,
subj. II XOX Turnir.
Rezultati 2. kola:
MALISHA : ZHIVADIN 6 : 0
DEFENDER : VINKOM 6 : 0
KAJKO : VINKOM01 0 : 6
Tabela posle 2. kola
_____________________________________________
1. VINKOM01 2 2 0 0 12:0 6
2. MALISHA 2 2 0 0 9,5:2,5 6
3. DEFENDER 2 1 0 1 8,5:3,5 3
4. ZHIVADIN 2 1 0 1 5:7 3
5. KAJKO 2 0 0 2 1:11 0
6. VINKOM 2 0 0 2 0:12 0
_____________________________________________
(kolone u tabeli redom znace: odigrao meceva, pobede, nereseno,
izgubljeno, 'gol-razlika' i broj bodova)
E sada malo komentara:
Prvi mec, doneo je iznenadjujuci rezultat (ako se gledaju rezultati
prvog kola). Medjutim, ovaj rezultat samo pokazuje slabost sampiona
prethodnog turnira (KAJKO.EXE) i dokaz je da je domaci zadatak dobro
uradjen. MALISHA.EXE je ocigledno u dobroj formi i nije bilo vecih
problema za njega u ovom mecu. ZHIVADIN.EXE se dobro drzao ali...
Drugi mec je protekao u nadmocnosti DEFENDER-a i osim jedne partije koja
je trajala nesto duze, borbe su bile srednje duzine. Ipak je VINKOM.EXE
'veteran' i 'procitan' tako da mislim da mu poslednje mesto nece umaci.
Treci mec. Sve sto nije VINKOM.EXE jeste VINKOM01.EXE. Tako je lako
'smazao' starog (sada je to sasvim izvesno) sampiona da je to bilo
milina gledati. Bilo je cak i 'suster-matova' :)))
Posle expresne i maksimalne pobede VINKOM01.EXE se zadrzao u vodjstvu,
a prati ga MALISHA.EXE. U drugom redu su DEFENDER.EXE i ZHIVADIN.EXE,
a fenjer drze bivsi sampioni.
Toliko za drugo kolo. Posle drugog dolazi trece kolo. A u trecem kolu
sastaju se:
MALISHA : KAJKO
DEFENDER : VINKOM01
ZHIVADIN : VINKOM
Derbi je svakako drugi mec, jer u prvom je favorit MALISHA a u drugom
ZHIVADIN, ali ko zna.
Uz poruku je zakacena arhiva sa izvestajima sa meceva 2. kola.
P.S. Turnir izvodim u 'partizanskim' uslovima jer zbog posledica
krecenja mog stana, namestaj nije vracen na svoje pozicije. Zato ako
dodje do eventualnog kasnjenja, ne sekirajte se mnogo, za dan dva bice
normalizovano stanje.
uz2kolo.zipalgoritmi.355tomak,
> Uz poruku je zakacena arhiva sa izvestajima sa meceva 2. kola.
A uz ovu poruku je ahiva PREGLED.ARJ u kojoj su:
PREGLED.EXE za pregled odigranih partija.
PREGLED.BAT za pustanje pregleda.
TUR2PROG.EXE vadi iz izvestaja sa ovog turnira odabranu partiju i upisuje
u LOGFAJL koji može sa PREGLED.EXE ponovo da se pogleda.
> P.S. Turnir izvodim u 'partizanskim' uslovima jer zbog posledica
> krecenja mog stana, namestaj nije vracen na svoje pozicije. Zato ako
Krečenje svakako spada u stresnija događanja ...
pregled.arjalgoritmi.356tomak,
> TUR2PROG.EXE vadi iz izvestaja sa ovog turnira odabranu partiju i upisuje
> u LOGFAJL koji može sa PREGLED.EXE ponovo da se pogleda.
Kod nerešenih partija (do sad je bila samo jedna) Embe prekida pre kraja
kada takmičari više nemogu da naprave 'peticu'. Ne znam kako i da li može
da se izađe iz XOX2121 kad se dođe do tog prekida ali kad se pušta sa
PREGLED-om kod tog prekida treba da se odigra pogrešan potez. Uz poruku
je TUR2PREG sa ispravkom.
tur2preg.exealgoritmi.357embe,
> Kod neresenih partija (do sad je bila samo jedna) Embe prekida pre kraja
> kada takmicari vise nemogu da naprave 'peticu'. Ne znam kako i da li moze
> da se izade iz XOX2121 kad se dode do tog prekida ali kad se pusta sa
XOX212 v.2.4 sama otkriva 'remi' situaciju.
algoritmi.358embe,
subj. II XOX Turnir.
Rezultati 3. kola:
MALISHA : KAJKO 5 : 1
DEFENDER : VINKOM01 0 : 6
ZHIVADIN : VINKOM 6 : 0
Tabela posle 3. kola
_____________________________________________
1. VINKOM01 3 3 0 0 18:0 9
2. MALISHA 3 3 0 0 14,5:3,5 9
3. ZHIVADIN 3 2 0 1 11:7 6
4. DEFENDER 3 1 0 2 8,5:9,5 3
5. KAJKO 3 0 0 3 2:16 0
6. VINKOM 3 0 0 3 0:18 0
_____________________________________________
(kolone u tabeli redom znace: odigrao meceva, pobede, nereseno,
izgubljeno, 'gol-razlika' i broj bodova)
E sada malo komentara:
Prvi mec, je protekao u pozicionoj borbi oba takmicara, stim sto je
MALISHA bio mnogo uspesniji. Jos jednom da primetim da MALISHA igra
sjajno u odbrani (cak malo i preterano). Jednom je umesto da napravi
slobodna cetiri u nizu, odigrao blokadu protivnikova tri slobodna u
nizu (?). Sto je mnogo mnogo je :))(Ipak je dobio tu partiju)
Drugi mec je bio derbi samo za mene, jer iako se DEFENDER dobro drzao,
ipak nije odoleo sjajnim napadima VINKOM01-a. Meni za utehu je da je
VINKOM01-u trebalo za sada najvise poteza za savladjivanje svojih
protivnika
Treci mec je bio najlepsi u ovom kolu. Sastali su se Real iz Madrida i
FK Pekar :)). Sta da kazem, bila je to egzibiciona igra nadmocnog
ZHIVADINA. Za VINKOM-a se, na srecu, sve brzo zavrsilo.
Toliko za trece kolo. Posle treceg dolazi cervrto kolo. A u cetvrtom
kolu sastaju se:
MALISHA : VINKOM
DEFENDER : KAJKO
ZHIVADIN : VINKOM01
Derbi je svakako treci mec, jer u prvom je favorit MALISHA a u drugom
DEFENDER, ali ko zna (derbi = mislim najinteresantniji mec, a ne
najneizvesniji)
Uz poruku je zakacena arhiva sa izvestajima sa meceva 3. kola.
izv3kolo.zipalgoritmi.359qpele,
E kakav je ovo turnir bez navijaca. Ovim putem pozivam sve ljubitelje
zivadina da ga svojim navijanjem podrze u derbiju IV kola :)
Ko bude najgrlatiji postaje vodja navijaca :)
algoritmi.360qpele,
E da grupa navijaca zhivadina se zove:
Zhivadini sa severa :)
algoritmi.361hercog,
│ ZHIVADIN : VINKOM01
└───────────────────────────────────────────────────────────
Ajmo ajde, ZHIVADINE :)) Napred domaći.... :)))
Sale
algoritmi.362zla.,
NAPRED ZIVADINE....
algoritmi.363tomak,
> MALISHA bio mnogo uspesniji. Jos jednom da primetim da MALISHA igra
> sjajno u odbrani (cak malo i preterano). Jednom je umesto da napravi
Nisam težio samo odbrani ima nečeg i u onoj narodnoj: 'Napad je najbolja
odbrana'. Pisao sam ga da iz odbrane gradi napad i da bude što
'univerzalniji' ... tako da (pošto je u pitanju turnir) uspešno igra sa
različitim protivnicima ...
algoritmi.364embe,
subj. II XOX Turnir.
Rezultati 4. kola:
MALISHA : VINKOM 6 : 0
DEFENDER : KAJKO 3 : 3
ZHIVADIN : VINKOM01 0 : 6
Tabela posle 4. kola
______________________________________________
1. VINKOM01 4 4 0 0 24:0 12
2. MALISHA 4 4 0 0 20,5:3,5 12
3. ZHIVADIN 4 2 0 2 11:13 6
4. DEFENDER 4 1 1 2 11,5:12,5 4
5. KAJKO 4 0 1 3 5:19 1
6. VINKOM 4 0 0 4 0:18 0
______________________________________________
(kolone u tabeli redom znace: odigrao meceva, pobede, nereseno,
izgubljeno, 'gol-razlika' i broj bodova)
E sada malo komentara:
U prvom mecu, malo teze nego sto sam ja ocekivao, MALISHA je savladao
poslednjeplasiranog. Pod 'malo teze' mislim na broj poteza, koji je bio
prilicno veliki. MALISHA ni jednom nije bio ozbiljnije ugrozen, dobro je
blokirao poziciju i cekao da mu se ukaze prilika, koju je zatim
realizovao. S obzirom da MALISHA i inace igra dugacke partije, (koje i
dobija), sasvim je subjektivno moje misljenje o tome dan se MALISHA
'oznojio' u ovom mecu.
Drugi mec je bio totalno neizvesan. DEFENDER je igrao promenljivo
(uostalom, kao i KAJKO) i iako ovaj rezultat predstavlja razocaranje za
mene, rezultat je pravedan. Nije bilo velikih obrta u mecu, svako je
dobio partiju koju je pocinjao. Partije su bile kratke do srednje
duzine.
Treci mec je pokazao da VINKOM01 jos uvek nije naisao na dostojnog
protivnika. ZHIVADIN je po svom obicaju igrao izuzetno ofanzivno ali je
to bilo previse riskantno. Uglavnom posle kontranapada VINKOM01 je
poentirao. Lep mec, sa puno lepih i neocekivanih poteza.
Toliko za cetvrto kolo. Posle cetvrtog dolazi peto - poslednje kolo. A
u poslednjem kolu kolu sastaju se:
MALISHA : VINKOM01
DEFENDER : ZHIVADIN
KAJKO : VINKOM
E sad, mozda mi necete verovati, ali ovakav rasplet nisam izrezirao.
U poslednjem kolu igra se za titulu, za trece i za peto mesto.
Sudari direktnih rivala odlucuju o konacnom poretku.
Lider na tabeli VINKOM01 dovoljan je i neresen ishod za osvajanje
titule a MALISHA mora da pobedi. Po meni moguc je svaki ishod osim
neresenog. Mali favorit je VINKOM01 ali sudeci po tome da MALISHA igra
sjajno u odbrani, moguce je da MALISHA 'ustopuje' 'Ronalda'.
U drugom mecu ZHIVADIN se bori za ostanak u Ligi jer mu je potrebna
pobeda da bi presao granicu od 50% osvojenih poena. DEFENDER je pokazao
da mu vise leze 'ofanzivci', ali uporedjujuci rezultate sa istim
protivnicima, ZHIVADIN je u prednosti.
Mec izmedju bivsih sampiona vec smo gledali i tu nema sta da se kaze.
Uz poruku je zakacena arhiva sa izvestajima sa meceva 4. kola.
uz4kolo.zipalgoritmi.365kenza,
>> E da grupa navijaca zhivadina se zove:
>> Zhivadini sa severa :)
Zivko,Zivko!!!
Zivko,Zivko !!!
Zivko,Zivko!!!..!!!!!
Zivko,Zivko !!!......!!!!!! ;)
Zivko,Zivko!!!..!!!!!
Zivko,Zivko !!!
Zivko,Zivko!!!
Ovo sa uzvicnicima ide postepeno, kako se razbuktava strast na
tribinama :)
algoritmi.366embe,
subj. II XOX Turnir.
Rezultati 5.(poslednjeg) kola:
MALISHA : VINKOM01 2 : 4
DEFENDER : ZHIVADIN 6 : 0
KAJKO : VINKOM 4 : 2
Konacna tabela posle 5. kola
______________________________________________
1. VINKOM01 5 5 0 0 28:2 15
2. MALISHA 5 4 0 1 22,5:7,5 12
3. DEFENDER 5 2 1 2 17,5:12,5 7
4. ZHIVADIN 5 2 0 3 11:19 6
5. KAJKO 5 1 1 3 11:19 4
6. VINKOM 5 0 0 5 2:22 0
______________________________________________
(kolone u tabeli redom znace: odigrao meceva, pobede, nereseno,
izgubljeno, 'gol-razlika' i broj bodova)
E sada malo komentara:
Prvi mec je bio derbi turnira sto je i opravdao. MALISHA je jedini uspeo
da pobedi VINKOM01 i to u dve partije. Medjutim, VINKOM01 je za nijansu
bio bolji i zasluzeno je pobedio direktnog rivala i osvojio prvo mesto
na turniru. Za divno cudo partije nisu bile mnogo dugacke (s obzirom na
stil igre koji gaji MALISHA). VINKOM01 je sjajan ofanzivac a MALISHA
sjajan defanzivac. Ovaj put pobedila je leprsavost VINKOM01 ali MALISHA
je pokazao da ne zaostaje mnogo za pobednikom.
Drugi mec je direktno odlucivao o ostanku u ligi ZHIVADIN-a. ZHIVADIN
nije imao kljuc za 'katanac' DEFENDER-a i zasluzeno je izgubio. Mozda ce
za nekoga ovako glatki poraz ZHIVADIN-a biti cudan, ali ovaj rezultat je
samo potvrda da ZHIVADIN igra mnogo slabije protiv defanzivnih takmicara
(podsecam na 0:6 protiv MALISHE). Mozda je steta sto je ovaj poraz
onemogucio ZHIVADINA da se plasira na sledeci turnir, a pobeda nije
omogucila DEFENDERU isto to, ali ubedjen sam da ce za sledeci turnir
doci neki novi, i usavrseni ZHIVADIN.
Treci mec je potvrdio ishod sa proslog turnira kada je KAJKO pokazao da
je jaci od VINKOM-a, i tu ne bih nista dodavao.
Dakle, za sledeci, III XOX Turnir, na osnovu uspeha, kvalifikovali su se
sledeci takmicari:
1. VINKOM01 sa uspehom 15/15 (100%)
2. MALISHA sa uspehom 12/15 (80%)
Iz lige ispadaju:
3. DEFENDER sa uspehom 7/15 (47%)
4. ZHIVADIN sa uspehom 6/15 (40%)
5. KAJKO sa uspehom 4/15 (27%)
6. VINKOM sa uspehom 0/15 (0%)
Kratak statisticki pregled odrzanog turnira je u pripremi.
Sifra za raspakivanje arhive sa svim takmicarima, kao i sa ranije
poslatim takmicarem organizatora (tj. mene) je:
NemaLaziNemaPrevare
Uz poruku je zakacena arhiva sa izvestajima sa meceva 5. kola.
uz5kolo.zipalgoritmi.367embe,
subj. II XOX Turnir.
Sttistika II XOX Turnira:
++ Ukupno odigranih poteza
┌──────────┬──────┬──────┬──────┬──────┬──────┬──────┬────────────────┐
│ │ MAL. │ DEF. │ ZHI. │ KAJ. │ VIN. │ VIN01│ Ukup. /Prosek* │
├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼────────────────┤
│MALISHA │ ## │ 450 │ 350 │ 396 │ 348 │ 140 │ 1684 / 56.3 │
├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼────────────────┤
│DEFENDER │ 450 │ ## │ 507 │ 245 │ 223 │ 309 │ 1734 / 57.8 │
├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼────────────────┤
│ZHIVADIN │ 350 │ 507 │ ## │ 271 │ 138 │ 177 │ 1443 / 48.1 │
├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼────────────────┤
│KAJKO │ 396 │ 245 │ 271 │ ## │ 210 │ 211 │ 1333 / 44.4 │
├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼────────────────┤
│VINKOM │ 348 │ 223 │ 138 │ 210 │ ## │ 164 │ 1083 / 36.1 │
├──────────┼──────┼──────┼──────┼──────┼──────┼──────┼────────────────┤
│VINKOM01 │ 140 │ 309 │ 177 │ 211 │ 164 │ ## │ 1001 / 33.3 │
└──────────┴──────┴──────┴──────┴──────┴──────┴──────┴────────────────┘
* Prosek je po jednoj pojedinacnoj partiji.
++ Najbrze pobede :
1. VINKOM protiv KAJKO-a .... 8 poteza (!)
2. KAJKO protiv DEFENDER-a .... 10 poteza
3. MALISHA protiv VINKOM-a .... 13 poteza
++ Najsporije pobede:
1. DEFENDER protiv ZHIVADIN-a .... 160 poteza
2. DEFENDER protiv ZHIVADIN-a .... 157 poteza
3 MALISHA protiv VINKOM-a .... 135 poteza
++ Najbrze zavrseni mecevi
1. ZHIVADIN protiv VINKOM-a (6:0) .... 138 poteza ukupno
2. VINKOM01 protiv MALISHE (4:2) .... 140 poteza ukupno
++ Najsporije zavrseni mecevi
1. DEFENDER protiv ZHIVADIN-a (6:0) .... 507 poteza ukupno
2. MALISHA protiv DEFENDER-a (3,5:2,5) . 450 poteza ukupno
+ Ziri (odnosno ja) proglasio je pobednike u sledecim kategorijama:
--- Takmicar sa najboljim napadom: VINKOM01
--- Takmicar sa najboljom odbranom: MALISHA
--- Najatraktivniji takmicar (nagrada publike) ZHIVADIN
--- Najbrzi igrac (najbrze povlaci poteze) dele KAJKO i DEFENDER
--- Najsporiji igrac (najsporije povlaci poteze) VINKOM
--- Najlepsa partija turnira VINKOM01 - KAJKO (treca partija,
pobeda VINKOM01 u 36. potezu)
Toliko od mene. II XOX Turnir je karakterisalo izuzetno poboljsanje
kvaliteta takmicara. Verujem da ce sledeci turnir okupiti jos jace
takmicare. Nadam se i novim licima i novim idejama.
Cestitam autorima pobednickih takmicara VINKOM-u i TOMAK-u i porucujem
im da ne spavaju na lovorikama i da nastave da prave jos jace takmicare.
Ostalima ostaje izazov da sruse sampione.
Pozdrav.
algoritmi.368qpele,
Nista, samo mogu da najavim za sledeci turnir zhivadinovu sestru
bozana.exe :)))
algoritmi.369mmarkovic,
> Nista, samo mogu da najavim za sledeci turnir zhivadinovu sestru
> bozana.exe :)))
E, svaka ti čast za imena! :)))
Ako mogu da se ponudim za kuma, predlažem i:
MILOJICA
RADOJICA
DJOKA
PERA
ZHIKA
Naravno, .EXE ...
algoritmi.370tomak,
> Konacna tabela posle 5. kola
> ______________________________________________
>
> 1. VINKOM01 5 5 0 0 28:2 15
> 2. MALISHA 5 4 0 1 22,5:7,5 12
> 3. DEFENDER 5 2 1 2 17,5:12,5 7
> 4. ZHIVADIN 5 2 0 3 11:19 6
> 5. KAJKO 5 1 1 3 11:19 4
> 6. VINKOM 5 0 0 5 2:22 0
> ______________________________________________
Sve što ću napisati je da me zanima koliko je od VINKOM01 do savršenosti
(za ovakvu koncepciju) i da li ima neki potez koji ne igra najjače.
> Dakle, za sledeci, III XOX Turnir, na osnovu uspeha, kvalifikovali su se
> sledeci takmicari:
>
> 1. VINKOM01 sa uspehom 15/15 (100%)
> 2. MALISHA sa uspehom 12/15 (80%)
Trebalo bi postotak da se računa po dobijenim partijama - to je pravi
postotak.
Organizacija sa detaljima ... sami superlativi ...
algoritmi.371embe,
>> Sve sto cu napisati je da me zanima koliko je od VINKOM01 do savrsenosti
>> (za ovakvu koncepciju) i da li ima neki potez koji ne igra najjace.
VINKOM01 igra samo jace od ostalih (pravi manje gresaka). Inace,
jos smo daleko od igranja najjacih poteza. Evo npr. napravio sam
novog takmicara koji tuce VINKOM01 sa ne manje od 5:1 (uvek) ali je
slabiji od MALISHE (gubi sa 2:4 do 1:5). Prema tome ....
>>> Dakle, za sledeci, III XOX Turnir, na osnovu uspeha, kvalifikovali
>>>su se sledeci takmicari:
>>>
>>> 1. VINKOM01 sa uspehom 15/15 (100%)
>>> 2. MALISHA sa uspehom 12/15 (80%)
>> Trebalo bi postotak da se racuna po dobijenim partijama - to je
>>pravi postotak.
Ipak mislim (samo za ovo takmicenje) da je proporcionalni sistem
manje dobar od vecinskog :))
Bez zezanja, bodovi su oni koji bolje sagledavaju ukupnu snagu
nekog takmicara. Nisu iste tezine dve partije dobijene protiv
VINKOM01 i VINNOM-a. Zar ne ? Ovako bi se to izjednacilo.
>> Organizacija sa detaljima ... sami superlativi ...
Hvala za pohvale, ali moram jos jednom da se izvinem za kasnjenje na
startu, kao sto sam rekao, desilo mi se krecenje, i ja tu nista nisam
mogao...
Sto se tice onih programa koje si napravio (za repeticiju partija),
jako su zgodni i korisni. S obzirom da sam takmicenje izvodio sa jos
ne publikovanim master programom XOX2121 v.2.4b, duznost mi je da ga
sada objavim. Mislim da je ovo jedna definitivna verzija.
xox2121.zipalgoritmi.372tomak,
> >> Sve sto cu napisati je da me zanima koliko je od VINKOM01 do
> >> savrsenosti (za ovakvu koncepciju) i da li ima neki potez koji ne igra
> >> najjace.
> VINKOM01 igra samo jace od ostalih (pravi manje gresaka). Inace,
> jos smo daleko od igranja najjacih poteza. Evo npr. napravio sam
> novog takmicara koji tuce VINKOM01 sa ne manje od 5:1 (uvek) ali je
> slabiji od MALISHE (gubi sa 2:4 do 1:5). Prema tome ....
Ovo je bila (svojevrsna) čestitka pa nisam bio precizan. Pod 'koncepcijom'
sam mislio na 'razmišljanje' samo o potezu koji treba da se odigra a pod
'najjače' sam mislio na greške u tom potezu ...
algoritmi.373qpele,
w
algoritmi.374tomcat,
Koliko tesko je napraviti sledeci program:
Ucita se i ostane rezidentan, i sta god posle korinik kucao, program
"podmece" svoje karaktere koje cita iz nekog fajla. Znaci na svaki
keypress on podmetne jedan karakter.
algoritmi.375emajsijuen,
To>> "podmece" svoje karaktere koje cita iz nekog fajla. Znaci na svaki
To>> keypress on podmetne jedan karakter.
Cek, cek, na svaki keypress da ispise neki karakter umesto onog koji
je trebao, ili da ispise i taj koji treba i neki drugi ?
Ako je "samo" ovo drugo onda nije problem...
algoritmi.376tomcat,
>To>> "podmece" svoje karaktere koje cita iz nekog fajla. Znaci na svaki
>To>> keypress on podmetne jedan karakter.
>
> Cek, cek, na svaki keypress da ispise neki karakter umesto onog koji
>je trebao, ili da ispise i taj koji treba i neki drugi ?
>
Treba da ispise samo jedan, onaj "svoj".
algoritmi.377tomak,
> > Cek, cek, na svaki keypress da ispise neki karakter umesto onog koji
> >je trebao, ili da ispise i taj koji treba i neki drugi ?
> >
>
> Treba da ispise samo jedan, onaj "svoj".
Ovo je tema algoritmi pa ... evo kako bi to bilo u pascalu.
Uz poruku je primer za KEEP (BP7.0), sa ubačenim delom ispisuje samo
'svoj' karakter.
keep.pasalgoritmi.378embe,
subj. III XOX turnir.
+ Prijave takmicara za III XOX turnir primace se od ponedeljka,
3.novembra 1997.
+ Poslednji rok za prijavu takmicara je petak, 7.novembar 24:00.
+ Takmicari se salju meni na mail.
+ Takmicenje pocinje (trebalo bi) u subotu 8.novembra 1997.
+ Takmicarska pravila su ista kao i za II XOX turnir.
(da ponovim, za ovaj turnir automatski su su prijavljeni pobednici
II XOX turnira, VINKOM01.EXE (by VINKOM) i MALISHA.EXE (by TOMAK).
Salje se samo jedan takmicar. I Vinkom, i Tomak mogu da posalju po
jednog takmicara takodje.)
+ Svako moze da ucestvuje. Naravno, treba samo da napravi svog
takmicara.
PS. Jedini razlog zasto je pocetak prijavljivanja tek u ponedeljak
je taj, sto ja moram pre pocetka prijavljivanja da publikujem svog
takmicara, koji jos nije gotov.
algoritmi.379tomcat,
> Ovo je tema algoritmi pa ... evo kako bi to bilo u pascalu.
> Uz poruku je primer za KEEP (BP7.0), sa ubacenim delom ispisuje samo
> 'svoj' karakter.
Problem je sto ispisuje i pritisnuti karakter. Kako to izbaciti?
Vladimir Prelovac
.........................
tomcat@galeb.etf.bg.ac.yu
algoritmi.380tomak,
> Problem je sto ispisuje i pritisnuti karakter. Kako to izbaciti?
Onaj primer što sam poslao kod mene ispisuje 5 puta samo slovo 's' bez
karaktera sa prisisnutog tastera a posle tih 5 puta počne da ispisuje
samo karakter sa pritisnutog tastera; usput i pišti (kako i inače u tom
primeru radi :)). Zanima me da li kod nekog radi nešto treće. ;(
algoritmi.381emajsijuen,
To>> Problem je sto ispisuje i pritisnuti karakter. Kako to izbaciti?
Imam ideju, ali me mrzi da pravim... Probaj da pre nego sto ispises 'svoj'
karakter odredis gde se kursor nalazi, pa onda na mesto ispred toga ispises taj
novi karakter. To ce verovatno raditi...
algoritmi.382emajsijuen,
Em>> Imam ideju, ali me mrzi da pravim... Probaj da pre nego sto ispises
Em>> 'svoj' karakter odredis gde se kursor nalazi, pa onda na mesto ispred
Em>> toga ispises taj novi karakter. To ce verovatno raditi...
Sad mi pade na pamet... Taj efekat mozes da postignes i bez pravljenja
bilo kakvog rezidentnog programa. Jednostavno prilagodi fontove, tako sto
npr. font(65):=Font(66) (A=B). Ali ovo ce da promeni i sva slova na ekranu
(ona koja si menjao).
algoritmi.383tomcat,
> > Problem je sto ispisuje i pritisnuti karakter. Kako to izbaciti?
>
> Onaj primer sto sam poslao kod mene ispisuje 5 puta samo slovo 's' bez
> karaktera sa prisisnutog tastera a posle tih 5 puta pocne da ispisuje
> samo karakter sa pritisnutog tastera; usput i pisti (kako i inace u tom
> primeru radi :)). Zanima me da li kod nekog radi nesto trece. ;(
Bas cudno jer kod mene ispisuje i pritisnuti karakter.
Vladimir Prelovac
.........................
tomcat@galeb.etf.bg.ac.yu
algoritmi.384tomak,
> Bas cudno jer kod mene ispisuje i pritisnuti karakter.
Da, da, da, ... ovo ne radi u DOS-ovom prozoru (ili Full-screen-u), radi
'samo' u čistom DOS-u ... Izvini - ako te dezorjentisah ...
algoritmi.385tomak,
> > Bas cudno jer kod mene ispisuje i pritisnuti karakter.
>
> Da, da, da, ... ovo ne radi u DOS-ovom prozoru (ili Full-screen-u), radi
> 'samo' u čistom DOS-u ... Izvini - ako te dezorjentisah ...
Evo je, u temi pascal, nepotpuna ispravka. Nepotpuna je jer se sa 'enter'
prelazi u drugi red.
algoritmi.386zuleika,
Seminar iz
GENETSKIH ALGORITAMA
pocinje u cetvrtak 06. 11. 1997. u 18 casova
Predavanja ce se odrzavati svakog cetvrtka, sem poslednjeg u mesecu,
u Racunarskoj Laboratoriji Matematickog fakulteta
(Studentski trg 16, IV sprat).
Prvo predavanje:
Dr Dusan Tosic,
profesor Matematickog fakulteta
Razvoj i karakteristike genetskih algoritama
Rukovodilac seminara
Dr Dusan Tosic
algoritmi.388vitez.koja,
Ok, evo je jedna storija o PCROBOTS-ima, pod radnim nazivom
PCROBOTS & Ja. Znači, probaću da u narednih nekoliko dana ispričam
neke stvari o tome, kakve sam ideje imao, šta sam radio itd...
* Uvod
Šta su uopšte ti pc roboti?
Radi se o igri u kojoj se dva (ili više) "robota-borca" bore i
pokušavaju da ubiju jedan drugog. Roboti su zapravo programi koje
neko napiše i iskompajlira i pošalje u arenu. Svaki robot može da
uradi nešto iz strogo ograničenog skupa instrukcija (kretanje,
potraga za protivnikom, pucanje...).
I tako, zainteresovala me je ta ideja, skinuo sam pcrob141.zip
(dos\fun\pcrob141.zip) i "proučio" pravila. Neke osnovne komande su
- configure - kreirate novog robota i određujete max. brzinu,
sposobnost manevrisanja - koliko mora da uspori da bi
skrenuo, domet oružja, jačinu oklopa i sposobnost
ubrzavanja; naravno, nešto možete povećati na uštrb
drugog itd.
- scan(angle, wide, range) - robot ispituje prostor oko sebe u
krugu od 360 stepeni; ovom instrukcijem naređujete mu
da ispita wide okolinu pravca angle i ako nađe
protivnika da vrati daljinu na kojoj se taj nalazi;
npr. scan(100, 5, range) ispituje sektor od 95. to
105. stepena;
- movement(angle, speed) - pomeranje robota u tom pravcu i brzini;
što se brže robot kreće, više energije gubi (nju
nadoknađuje mirovanjem)
- shoot(angle, range) - puca u tom smeru i na tu daljinu
Za više informacija predlažem čitanje pcrobots.doc iz gorespomenute
arhive i poruke iz igre.3:strategije od usera space.ace (leto '97).
* Prvi korak - Rani radovi
Ok, pročitao sam i razumeo o čemu se radi i rešio da napravim
najboljeg robota u istoriji... Prvo pravimo jednog robota za test.
Ako naš kandidat ne može da pobedi njega, onda bolje i da se ne
trudimo (dakle robot za test bi izgledao otprilike ovako):
#include <stdlib.h>
#include "pcrobots.h"
void main(void) {
int angle=0, range, k;
int s_dmg, prirastaj=4;
configure(2,0,4,4,0,0);
// znači maksimalan oklop i domet oružja, ostalo je 0 :)
randomize();
while (1) {
if (scan(angle=(angle+prirastaj)%360, prirastaj, &range) >=0) {
shoot(angle, range);
}
angle = (angle + 37) % 360;
// da bi ispitao svaki mogući ugao korak je 37
buy_armour(200 - damage());
// kad već ništa ne radi nadoknađuj štetu koja je nastala u
// međuvremenu na robotu (šteta se nadoknađuje na račun
// energije, a pošto robot stoji, energija se brzo
// nadoknađuje
}
}
Pošto je dogovoreno da se sezamov turnir odigra u default areni,
reših i da iskoristim prednosti iste (postoje zidovi iza kojih se
robot može sakriti - arena je pcrobots.rna, a za
xxxxxxxxxxxxxx vas koje mrzi da skidate recimo da izgleda
1x2 nekako ovako. Dakle, ideja je da se moj robot
x zabije u ćošak (1, 2, 3, 4) i da ne mrda odatle
dok ne ugleda nešto. Prednosti su što treba da
x proverava samo tih 90 stepeni, što je u
x međuvremenu siguran i što se ne pomera, pa ne
3x4 troši energiju. Znači, postupak je jednostavan -
xxxxxxxxxxxxxx idemo u najbliži ugao i skeniramo tih 90°. Kad nađemo
nešto pokušavamo da ga odredimo što preciznije gde
je tačno poloveći sektor koji smo pretraživali i pretražujući obe
polovine i tako dok ga ne nađemo sa preciznošću od 1°. Uvek treba
voditi računa da pcrobots radi sa celobrojnom matematikom i da treba
paziti kod nalaženja polovine (kasnije ćemo imati i problema sa max.
i min. brojevima koje celobrojni tip donosi).
U petlji vrtimo (znam da može jednostavnnije, ovo je i da
paskaldžije razumeju) sledeće (za npr. ćošak 2):
struct point {
int angle;
int range;
} data;
while (1) {
if ( scan(45, 45, &data.range) >= 0 ) break;
}
i kad se izleti vrtećemo npr. sledeću funkciju (start i end su
granice sektora koji ispitujemo, a funkcija vraća 0 ako ne nađe
ništa ili širinu sektora ako nađe nešto; wide je širina ispitivanog
sektora, da bi prenosili dokle smo stigli, na početku treba
podesiti wide kao (end-start)/2;
int scan_sector(int start, int end, int wide) {
int x, l;
x = (start + end + 1) / 2; // ugao koji se ispituje
if (scan(x % 360, wide, &data.range) == -1) return 0;
else {
if (wide < 2) {
data.angle=x % 360;
skshoot(data.angle, data.range);
return wide;
}
if (l=scan_sector(start, x, (wide+1)/2)) return l;
else if (l=scan_sector(x, end, (wide+1)/2)) return l;
else return (scan_sector(start, end, wide));
// ovaj treći red vam se čini malo nepotreban, ali trebaće :)
}
}
Yes, radi, kada ga program ispadne iz prve petlje, ova petlja će
odmah precizirati gde se protivnik nalazi i upucaćemo ga, a onda
povratak u prvu petlju (ovo i nije tako tragično, zato što ne može
neprestano da se puca, nego u razmacima od 50 "poteza" - potez je
pomeranje, pucanje i skaniranje okoline, tako da ima vremena da ga
ponovo nađemo). Podaci o tome gde je poslednji put nađena "meta"
čuvaju se u globalnoj promenljivoj data. Poboljsanje bi se moglo
uvesti i u ispitivanju if (wide < 2), zato što nije isto da li ga
i našli preciznošću od 1° na daljini 50 i na daljini 500. Ideja
je da se ispituje dužina luka tog sektora u kome smo našli
protivnika, pa ako je ona "dovoljno mala" onda prestati (a dužinu
luka, to zna svako dete računamo kao l = 2rŃ * Ó / 360, tj.
luk = 2 * Pi * data.range * (2*wide) / 360;
Pi naravno možemo emulirati sa 22/7 i uz malo izbegavanja preranog
zaokruživanja dolazimo do
luk = (22 * data.range * wide + 7 * 45) / 7 / 90
i da se nadate da niste prešli preko 65535 prilikom ovoga...
Postavlja se pitanje, kolika je ona "dovoljno mala" veličina, za
stepene je bilo lako - 1°, a kod luka? Nema druge nego ekperimentom
(nisam se time bavio, pa neću preporučiti nijednu vrednost).
* Drugi korak - Sitnim koracima napred
Odmah i lako se unosi poboljšanje u sve ovo - uvešćemo funkciju
koja će "pratiti" protivničkog robota, da ga ne tražimo ispočetka
uvek, kad već znamo gde je bio. Po svoj prilici nije daleko
pobegao... Kada uđemo u neku kritičnu zonu, npr. prošle je 47 ili
više poteza od poslednjeg pucaja, prelazimo na pucanje...
int follow_target(int wide) {
int a, b, y, i=1;
do {
a = data.angle-wide;
b = data.angle+wide;
wide = wide + i++;
if(y=scan_sector(a,b,wide)) return y;
} while (wide <= 45);
return 0;
}
Znači ovu ćemo funkciju neprekidno zvati iz petlje kad prvi put
pronađemo metu, da je održava na nišanu. Promenjive a i b su ivice
sektora koji ispitujemo. Proširujemo polako širinu ispitivanog
sektora dok konačno ne nađemo metu i onda prelazimo opet na funkciju
scan_sector, koja će da dovede preciznost na 1°.
Pucanje:
int skshoot (int angle, int range) {
if (ticks()+3 >= now_shoot) { // da li je prošlo 47 poteza?
while (ticks() < now_shoot) swaptask();
// swaptask() ne radi ništa, završava potez i daje ga drugom
// igraču, da ne idemo nigde između 47 i 50, tj. da pucamo čim
// pre
shoot(angle, range);
now_shoot=ticks()+50;
// sledeći pucanj je posle ovog + 50 poteza
} else {
buy_armour(MAX_DAMAGE-damage());
// ako nije prošlo 50 poteza, kupi oklop, ako treba
gotoxy();
// kreći se ako treba
}
return 0;
}
Dakle, funkcija za pucanje je najčešće pozivana funkcija i u nju
je stavljen i poziv funkcije za kretanje kroz arenu. Ta funkcija je
prilično jednostavne ideje, upisaću u dve globalne promenljive cilj
našeg kretanja i idemo prema tamo dok ne dođemo dovoljno blizu
(pogledati u fajlu uz poruku). Znači ostaje još samo da kompletiramo
sve ovo u jedan program i to bi bilo najjednostavnije uraditi ovako
nekako:
while(1) {
if (wide=scan_sector(start, end, x)) {
do keep_shooting(wide);
while (follow_target(wide));
}
buy_armour(MAX_DAMAGE-damage());
}
Ovo keep_shooting() prosto neprestano poziva skshoot dok mu je
meta na nišanu (a ta funkcija će već uraditi šta treba). Ovom
jednostavnom strukturom možemo menjati položaj našeg robota
(kretanje pozivamo iz skshoot funckije), neprestano pritom
održavajući našu metu na nišianu.
Kompletan primer mog "prvog" robota je uz poruku prikačen (ubačeno
je i malo kretanja po areni, ali biće vam jasno - ako robot nikog ne
uoči za 500 poteza, menja ćošak).
**
Ima li pitanja? :)
sk
rcb.calgoritmi.389vitez.koja,
Saga o PC Robotima
* Treći korak - Nekorisna matematika
Sve je to do sad bilo lepo, nego nešto mnogo promašujemo protivnika,
a toliko smo se trudili da ga baš precizno nađemo... :( To je zato
što se protivnik kreće, da citiram onaj crtani: "Kako misliš da te
udarim kada stalno skačeš?" :)
Elem, stvar je jasna, uvešćemo malo statistike - pamtiće se
poslednjih nekoliko mesta gde je nađen protivnički robot, videćemo
koliko treba našem hicu do tamo, naći ćemo gde će protivnik biti u
to doba i gađamo u tom smeru i daljini.
Kako znati, gde će protivnički robot biti u budućnosti? Iako je moj
sledeći robot dobio ime lagrange, nikakva La Granžova metoda ili neka
druga metoda interpolacije ne dolazi u obzir - u pitanju je
ektrapolacija položaja, pa su sve te metode izvanredno neprecizne.
Uradićemo krajnje jednostavnu stvar, pretpostaviću da se protivnik
kreće pravolinijski (u 2d sistemu), tj. da se za njegovo kretanje
može postaviti zakon y = kx + n (znam, znam, vertikalna kretanja
nisu obuhvaćena, vodićemo računa i o tome).
* Trigonometrija
Do konkretnih k i n možemo doći na više načina, možda
najjednostavniji (i neprecizan prilično) je uzeti prve i poslednje
tačke koje imamo i produžiti pravu kroz njih. Znači nešto kao:
dx = x(A) - x(1) - pomak po x osi
dy = y(A) - y(1) - pomak po y osi
dt = time(A) - time(1) - proteklo vreme između ova dva merenja
sp = ű (dx^2 + dy^2) / dt - brzina kretanja protivnika
ta = arctg (dy/dx) - pravac kretanja protivnika
i neka su range i angle trenutni položaj (u odnosu na našeg robota)
protivnika. Znači treba da nađemo gde će on biti kad naš metak
stigne do njega, tj. gde treba da pucamo (metak se kreće brzinom
400).
E sad malo trigonometrije (teško mi je nacrtati to, pa ću opisati):
R - položaj našeg robota
P - položaj protivnika
S - položaj protivnika kad metak stigne do njega
x osa - prava kroz R || pravoj x osi
angle - ugao koji zaklama x osa (pozitivni deo) sa vektorom RP (od
R ka P)
Ú - ugao RPS
ta - ugao x osa (poz.) sa pravom PS
tada važi:
Ú = angle - ta + 180°
RP = range (udaljenost protivnika od našeg robota)
RS : SP = bullet : sp (ako je bullet brzina metka)
Postavljamo kosinusnu teoremu u temenu P:
RS^2 = SP^2 + RP^2 - 2 cos(Ú) * RP * SP
koristimo gornje jednačine i uz malo sređivanja dobijamo da je:
- sp * cos(Ú) + ű [ bulletř - spř * (1 - cosř(Ú)) ]
RS = --------------------------------------------------------- *
bulletř - spř
* bullet * range
a da je ugao SRP iz sinusne teoreme:
RS : SP = sin(Ú) : sin(SRP)
sin(SRP) = sp * sin(Ú) / bullet
uz malo komplikacija pošto pc robots nema arcsin, već samo arctg, pa
se mora naći i cos(SRP) što opet nije veći problem (kosinusna
teorema za ugao SRP).
* Par sitnica
Eto sad ga imamo gotovog da ispravlja greške i gađamo unapred. Kad
smo već tu da unapredimo našeg robota i za još par sitnica. Kada
se zavučemo u ugao, zašto ne bismo skenirali svih 180° (robot "vidi"
i kroz zidove), a pucali samo kad nam se nađe u željenih 90°. Ovako
će već naš prvi metak imati podatke za korekciju svoje putanje.
Maksimalnu brzinu našeg robota smo ograničili na 40, pošto se toliko
energije nadoknađuje u svakom potezu, pa se robot može kretati bez
gubitka energije.
Da ne bi beležili vremenski bliske položaje protivnika (položaj
protivnika koji odredimo ipak nije toliko precizan) i na osnovu njih
donosili pogrešne zaključke uvešćemo minimum vremena koji treba da
prođe između dva uzastopna beleženja podataka.
Funkciju scan_sector smo podelili na dva dela - prvi koji radi ako
se ispituje više od 90° (pošto funkcija scan() radi samo do 90°) i
drugi sa polovljenjem sektora, tako da to sada izgleda:
int scan_sector(int start, int end, int wide) {
int i, l;
datarez.wide = 1000;
if (start < 0) start = 360 - start;
while (end < start) end += 360;
if (end-start > 90) {
for (i=start; i < end; i+=90)
if(l=scan_sector1(i, min(i+90, end), 45)) return l;
return 0;
} else return(scan_sector1(start, end, wide));
}
U okviru nove procedure scan_sector1 izmenjen je njen glavni deo i
zakomplikovan i tu praćenjem cilja i stalnim beleženjem podataka o
njemu. Za to se brine sledeći deo:
x = (start+end+1)/2;
if (wide < 2) {
int w1=1, y;
while (ticks()+GAP < now_shoot) {
if (scan(x%360, w1, &range) >= 0) {
datarez.angle = x % 360; datarez.range = range;
datarez.time = ticks(); datarez.wide = w1;
add_correct(datarez.angle, datarez.range,
datarez.time, datarez.wide);
w1 = (w1+1)/2;
} else if (scan((x+w1)%360, w1, &range) >= 0) {
x+=w1;
datarez.angle = x % 360; datarez.range = range;
datarez.time = ticks(); datarez.wide = w1;
add_correct(datarez.angle, datarez.range,
datarez.time, datarez.wide);
w1 = (w1+1)/2;
} else if (scan((x+360-w1)%360, w1, &range) >= 0) {
x-=w1;
datarez.angle = x % 360; datarez.range = range;
datarez.time = ticks(); datarez.wide = w1;
add_correct(datarez.angle, datarez.range,
datarez.time, datarez.wide);
w1 = (w1+1)/2;
} else w1++;
}
}
Prilično je loše napisano, ali treba i kompajler nešto da optimizuje
:). Elem, ideja je da se što više eliminišu kratkotrajne
protivnikove nevidljivosti. Znači pogledaj još jedan stepen
levo-desno, pa tek onda povećaj opseg koji gledaš. Čim ga nađeš suzi
opseg sektora minimalno. I vrti se tako u toj petlji dok ne dođe
vreme za pucanje...
A da i kratak komentar - x_pos i y_pos su trenutne koordinate našeg
robota, pa onda (u funkciji add_correct() ) iz range i angle
podataka (prevođenjem iz polarnog u dekartov sistem) lako nalazimo
dekartove koordinate neprijatelja. Mđt. problem je tu da zbog
nepreciznosti sin i cos funkcija, zbog nesigurnosti samog podatka
angle (pošto ima grešku od ˝1°), a i zbog zaokruživanja dolazi do
(ponekad i nezanemarivih) nepreciznosti, pogotovo kad se naš robot
pri tom kreće.
Uz poruku je druga generacija mog robota - lagrange.c, ima li
kakvih pitanje? :)
sk
lagrange.calgoritmi.390bcvetkovic,
Da li je ovo najava novog turnira?
algoritmi.391bokir,
Za maturski radim algoritme sortiranja, pa molim sve one koji
znaju neki manje poznat algoritam da napišu nešto o njemu. :)
algoritmi.392kojai,
>> Za maturski radim algoritme sortiranja, pa molim sve one koji
>> znaju neki manje poznat algoritam da napisu nesto o njemu. :)
Uzmi QuickSort... Imas ga u pascalu pod examples...
algoritmi.393mihailod,
> algoritme sortiranja
Apsolutna biblija:
Donald Knuth
The Art of Computer Programmming, Volume 3
"Sorting and Searching"
Addison Wesley, godina zavisi od izdanja...
Trebalo bi da ima po univerzitetskim bibliotekama.
Nadji neku vezu za biblioteku matematickog instituta
ili neku srodnu.
algoritmi.394bokir,
> >> Za maturski radim algoritme sortiranja, pa molim sve one koji
> >> znaju neki manje poznat algoritam da napisu nesto o njemu. :)
>
>
> Uzmi QuickSort... Imas ga u pascalu pod examples...
On baš i nije nešto "manje poznat". Mislim, svakako ću ga staviti, ali
mi treba što više "egzotičnih" algoritama.
algoritmi.395bokir,
> Trebalo bi da ima po univerzitetskim bibliotekama.
> Nadji neku vezu za biblioteku matematickog instituta
> ili neku srodnu.
10x, pokušaću.
algoritmi.396emajsijuen,
│ On bas i nije nesto "manje poznat". Mislim, svakako cu ga staviti, ali
│ mi treba sto vise "egzoticnih" algoritama.
└────────────────────────────────────────
Mozda bubble sort ? Ako ti treba, imam odlican primer i za quick sort,
i za bubble sort.
algoritmi.397dr.grba,
>> Mozda bubble sort ? Ako ti treba, imam odlican primer i za quick sort,
>> i za bubble sort.
Ako se ne varam, uz prvi Quick Basic koji je došao uz DOS (beše li
to 5.0? Ne sećam se...) je dolazio i jedan BASIC programčić koji je
demonstrirao 5-6 najpoznatijih algoritama sortiranja, uz zanimljivo
grafičko rešenje koje je bilo vrlo dobro za demonstraciju moći ovih
algoritama. Ja ovo odavno nemam, ali sam uveren da neko ko ovo čita
ima to u nekoj sedamnaestoj polici u petoj prostoriji devete zgrade
tridesete biblioteke u jedanaestom zamku (:
Preporučujem potragu za programom, sigurno će biti od pomoći.
algoritmi.398bokir,
> Mozda bubble sort ? Ako ti treba, imam odlican primer i za quick sort,
> i za bubble sort.
Ne, ne...To su sve _najpoznatiji_ algoritmi sortiranja. Meni trebaju oni
manje poznati, tipa Radix Sort i slično.
algoritmi.399bokir,
> to 5.0? Ne sećam se...) je dolazio i jedan BASIC programčić koji je
> demonstrirao 5-6 najpoznatijih algoritama sortiranja, uz zanimljivo
> grafičko rešenje koje je bilo vrlo dobro za demonstraciju moći ovih
> algoritama. Ja ovo odavno nemam, ali sam uveren da neko ko ovo čita
> ima to u nekoj sedamnaestoj polici u petoj prostoriji devete zgrade
> tridesete biblioteke u jedanaestom zamku (:
Zvuči simpatično :)
Ima li neko ovo programče?
algoritmi.400firus,
>> >> Za maturski radim algoritme sortiranja, pa molim sve one
>> >> koji znaju neki manje poznat algoritam da napisu nesto o
>> njemu. :)
>>
>>
>> Uzmi QuickSort... Imas ga u pascalu pod examples...
>
> On baš i nije nešto "manje poznat". Mislim, svakako ću ga
> staviti, ali mi treba što više "egzotičnih" algoritama.
'Ajmo da vidimo (redosled je potpuno slučajan):
1. Selection
2. Bubble
3. Insertion
4. Heap
5. Merge
6. Radix
7. Quick
8. Stack
9. Ford&Johnson
Jes' da su svi više-manje poznati, ali možda neki od njih
nisi već iskoristio, pa vikaj za informacije ...
algoritmi.401popovics,
▄- Ako se ne varam, uz prvi Quick Basic koji je došao uz DOS
▄- (beše li to 5.0? Ne sećam se...) je dolazio i jedan BASIC
▄- programčić koji je demonstrirao 5-6 najpoznatijih algoritama
▄- sortiranja, uz zanimljivo
Da, ja ga imam :)). Program se zove sortdemo.bas i ako zaista nekom treba,
neka viče, poslaću ga...Inače, nije uz Quick Basic koji se dobijao uz
dos 5.0 ( u pravu si, bio je 5.0 ) već uz prvi KOMPAJLER ( ono uz dos
je bio interpreter ). :)
algoritmi.402bokir,
> 6. Radix
> 9. Ford&Johnson
> Jes' da su svi više-manje poznati, ali možda neki od njih
> nisi već iskoristio, pa vikaj za informacije ...
Za ova dva jesam čuo, ali ih nikad nisam video :)
Može malo informacija o njima?
algoritmi.403dr.grba,
>> Da, ja ga imam :)). Program se zove sortdemo.bas i ako zaista nekom
>> treba, neka viče, poslaću ga...Inače, nije uz Quick Basic koji se dobijao
Daj, pošalji ga ovamo. Poslužiće dobro svakome ko želi da nauči
algoritme sortiranja, a posebno čoveku za ovaj rad.
Da, imao sam i taj QB kompajler, davno beše. Zaboravio sam da je
program mogao biti tamo, a ne uz interpreter.
algoritmi.404popovics,
Izvinjavam se što ne citiram, ali ovo pišem online. Evo, uz poruku
SORTDEMO.BAS.
sortdemo.basalgoritmi.405bokir,
> Izvinjavam se što ne citiram, ali ovo pišem online. Evo, uz poruku
> SORTDEMO.BAS.
A jel bi to moglo kao običan ASCII fajl, a ne ove kuke i kvake?
algoritmi.406speedy,
Pregledaj stare brojeve racunara, mislim da je bila neka serija clanaka
o sortiranju.
algoritmi.407popovics,
Opet se izvinjavam što ne citiram, ali opet radim online. Pored
ovog, izvinjavam se na "kukama & kvakama" jer je to bio onaj fajl,
ali u binarnom obliku u koji ga smešta QB, radi bržeg učitavanja i
manjeg prostora. Evo, šaljem ASCII verziju...
P.S Izvinjenje opet
sortdemo.basalgoritmi.408jjerry,
Mozhe li neko da mi opishe najbolji i brz algoritam za ,uslovno
recheno, "renderovanje" odnosno jednostavno prikazivanje 3d
objekata na ekranu.Dosad sam video nekoliko jednachina,koje
naizgled nemaju veze jedna s drugom a koje sve sluzhe da prikazhu
tachku bilo gde u virtuelnom 3d svetu na ekranu. Inache,kako se
implementiraju matrice u kod i kako se to "vektori predstavljaju
i transformishu matricama". (Znam operacije sa matricama
,mnozhenje,sabiranje itd.) Takodje bi dobro doshli i algoritmi za
rotaciju objekta.
Hvala in advance :)
algoritmi.409jujo,
# Mozhe li neko da mi opishe najbolji i brz algoritam za ,uslovno
# recheno, "renderovanje" odnosno jednostavno prikazivanje 3d
# objekata na ekranu.Dosad sam video nekoliko jednachina,koje
# naizgled nemaju veze jedna s drugom a koje sve sluzhe da prikazhu
# tachku bilo gde u virtuelnom 3d svetu na ekranu. Inache,kako se
# implementiraju matrice u kod i kako se to "vektori predstavljaju
# i transformishu matricama". (Znam operacije sa matricama
# ,mnozhenje,sabiranje itd.) Takodje bi dobro doshli i algoritmi za
# rotaciju objekta.
#
# Hvala in advance :)
Pa prijavi se u grupu DemoScene pa ce ti neko mozda pomoci.
yooyo:
P.S.: Mozda bih mogao i ja, al me mrzi da opisujem sve od pocetka.
Javi se kad provalis kako radi "wireframe" 3d grafika. pa ces posle
lako..
algoritmi.410jjerry,
Otprilike sam provalio predstavljanje wireframe objekata,s tim
shto je ,poshto sam to sam radio nekim svojim principom,pomalo
primitivno ali sam npr. uspeo da se zezam sa kvadrima,da ih
transliram po x,y,z ,skaliram (squash itd.) i sad se zezam malo sa
jednachinama rotacije. Btw. ja sam do sada predstavljao objekte
koordinatama svake tachke,i to drzhao u nizu.Da li postoji neki
bolji nachin ?
P.S Ako bi pomenuo makar neke Web strane ,bilo bi super.
P.P.S Ko je owner grupe DemoScene ?
algoritmi.411jjerry,
Ako bi mogao da mi opishesh (i napishesh) jednachine koje si ti
koristio za prikazivanje tachke i otprilike ,u kratkim crtama, da
mi objasnish kako se definishu slozheniji objekti (ja sam recimo
koordinate svake tachke kocke stavljao u jedan niz,mora da postoji
bolji nachin).
Ako bi nasho vremena za reply,bio bih ti zahvalan..
algoritmi.412jujo,
# jednachinama rotacije. Btw. ja sam do sada predstavljao objekte
# koordinatama svake tachke,i to drzhao u nizu.Da li postoji neki
# bolji nachin ?
#
# P.S Ako bi pomenuo makar neke Web strane ,bilo bi super.
www.hornet.org........Najveca arhiva demo scene. Tu imas dir /code i svi
efekti koji te zanimaju se tu nalace. C, Pascal i ASM uglavnom..
# P.P.S Ko je owner grupe DemoScene ?
Ja!
yooyo:
algoritmi.413jujo,
# Ako bi mogao da mi opishesh (i napishesh) jednachine koje si ti
# koristio za prikazivanje tachke i otprilike ,u kratkim crtama, da
# mi objasnish kako se definishu slozheniji objekti (ja sam recimo
# koordinate svake tachke kocke stavljao u jedan niz,mora da postoji
# bolji nachin).
#
# Ako bi nasho vremena za reply,bio bih ti zahvalan..
U kom jeziku programiras... Savet..predji na C & ASM.
Jednacine...
Imas 2 pristupa. Prvi je da imas fixnu kameru (posmatraca), a drugi je
da je posmatrac u slobodan u prostoru.
Prvi je jednostavniji, ali nije flexibilan. Formula izgleda ovako:
x,y,z - koordinate tacke u prostoru
mx,my,mz - "pomeraj" tacke u odnosi na koordinatni pocetak
ex,ex - koordinate na ekranu
rezx, rezy - rezolucija ekrana
fov - "sirina" pogleda
ex=rezx/2 + fov*(mx+x)/(mz+z)
ey=rezx/2 + fov*(my+y)/(mz+z)
i posle ovoga su ex i ey koordinate tacke na ekranu. Ako imas
npr. kocku u prostoru (tj. 8 tacaka) isprojektujes ih sve pa onda navalis
da crtas linije izmedju njih.
Za "pamcenje" objekta moras izgraditi strukturu u memoriji koja ce ga
predstavljati. za pocetak uradi sledece:
typedef struct { float ox, oy, oz; // originalne koordinate tacke u prostoru
float wx, wy, wz; // "radne" koordinate. posle svih
// transf. (rotacije, skaliranje, etc.)
int ex, ey; // koordinate na ekranu
} TACKA;
typedef struct { int p1, p2, p3; // indexi tacaka u nizu koje cine trougao
} TROUGAO;
typedef struct { TACKA tacke[1000];
int maxtc; // broj upotrebljenih tacaka
TROUGAO tr[1000];
int maxtr; // broj upotrebljenih trouglova
} OBJEKAT;
OBJEKAT kocka={..bla..bla..bla..};
algoriram bi izgledao ovako:
TROUGAO trg;
int ex1, ey1, ex2, ey2, ex3, ey3;
rotiraj tacke.... // ako ima potrebe
skaliraj objekat.... // ako ima potrebe
projektuj sve tacke na ekran..
for (i=0; i<maxtr; i++)
{
trg=kocka.tr[i];
ex1=kocka.tacke[trg.p1].ex;
ey1=kocka.tacke[trg.p1].ey;
ex2=kocka.tacke[trg.p2].ex;
ey2=kocka.tacke[trg.p2].ey;
ex3=kocka.tacke[trg.p3].ex;
ey3=kocka.tacke[trg.p3].ey;
polyline(ex1, ey1, ex2, ey2, ex3, ey3);
}
i to je to...
Drugi nacin je malo komplikovan za objasnjavanje. Naime... potrebno je od
pozicije kamere, i njenih vektora formirati matricu transformacije i onda
svaku tacku objekta "provuci" kroz matricu i dobices koordinate u
kamerinom svetu. Posle se sve svodi na slucaj 1.
Za texturemapping, i skrivanje nevidljivih ivica, moras uvesti jos jedan
pojam, a to je orijentacija trougla u prostoru...ali o tome drugom prilikom.
Ono gore sam pisao iz glave... moguce je optimizivati, izbaciti float racun i
koristiti fixed point aritimetiku... u svakom slucaju... ubacicu te u grupu
DemoScene, pa ce tu biti dosta stvari...
yooyo:
algoritmi.414jjerry,
10x za ubacivanje i ono sa www.hornet.org. Skinuo sam neshto gde
se objashnjava i matematika,shto mi je daleko bitnije,jer ipak se
na I godini MG i ne radi neshto preterano puno (samo planimetrija),
ali je probleam shto ima 115 strana :)
algoritmi.415kojai,
Jos uvek mi trebaju algoritmi za mix 2 ili vise wava...
Ko ima neka salje!
algoritmi.416jjerry,
> Drugi nacin je malo komplikovan za objasnjavanje. Naime...
>potrebno je od
>pozicije kamere, i njenih vektora formirati matricu transformacije
>i onda
>svaku tacku objekta "provuci" kroz matricu i dobices koordinate u
>kamerinom svetu. Posle se sve svodi na slucaj 1.
Mislish da praktichno svaku tachku translirash za vektor -v ,ako je
v vektor koordinatni pochetak - kamera , odnosno da se rotira za
suprotno orijentisani ugao od ugla izmedju pravca kamere i
horizontale ?
algoritmi.417jujo,
# Mislish da praktichno svaku tachku translirash za vektor -v ,ako je
# v vektor koordinatni pochetak - kamera , odnosno da se rotira za
# suprotno orijentisani ugao od ugla izmedju pravca kamere i
# horizontale ?
Pa tako nekako, ali je ipak bolje konstruisati matricu koja je nastala
od vektora pozicije kamere i vektora baze kamerinog sveta. Posle ide
samo mnozenje matrice i vektora.
yooyo:
algoritmi.418jujo,
# Jos uvek mi trebaju algoritmi za mix 2 ili vise wava...
#
#
#
#
# Ko ima neka salje!
Pa ja sam ti poslao u grupu demo, al si dobio nogu. U svakom slucaju
potrazi na internetu MIDAS 1.12 i u njemu imas biblioteku za
skoro sve DOS kartice, kao i za DirectSound. U stanju je da mixuje
MOD i proizvoljan broj wav-ova. Uz njega ide i sors, pa ga proanaliziraj.
yooyo:
algoritmi.419jujo,
# # Jos uvek mi trebaju algoritmi za mix 2 ili vise wava...
# #
# #
# #
# #
# # Ko ima neka salje!
#
# Pa ja sam ti poslao u grupu demo, al si dobio nogu. U svakom slucaju
****
beta
# potrazi na internetu MIDAS 1.12 i u njemu imas biblioteku za
# skoro sve DOS kartice, kao i za DirectSound. U stanju je da mixuje
# MOD i proizvoljan broj wav-ova. Uz njega ide i sors, pa ga
# proanaliziraj.
# yooyo:
algoritmi.420bokir,
Ima li možda neko komentarisane funkcije za rad sa B-stablima?
algoritmi.421obren,
> Skinuo sam iz sezamovog dir-a P-ROBOTS, iliti borbe robota-programa. Da
> li postoji dobra dusa koja se zezala sa ovim, i koja je voljna da mi
> objasni "funkcije i procedure" koje se koriste u source-ovima istih.
Batali P-Robots i uzmi PC-Robots (isti direktorijum). Za razliku od
prvog, podržani su svi značajniji jezici a ne samo Pascal, a tu je i
dokumentacija u kojoj je prilično detaljno objašnjena svaka funkcija
iz biblioteke.
Svojevremeno je ovde organizvan turnir u PC-Robotskima i uopšte bilo
je dosta priče o ovoj "sportskoj disciplini" pa pogledaj starije poruke
u ovoj temi (algoritmi).
Kad smo već kod algoritama, zanima me ima li interesovanja za ponovno
pokretanje (nagradnog) tamičenja u rešavanju programerskih zadataka?
Moglo bi se organizovati u više nivoa težine (kategorija), kako bi i
mlađi korisnici i napredni rešavači mogli da nađu svoj interes. Čak i
PC-Robots bi mogao da neđe svoje mesto, kao jedna od disciplina.
Zamislio sam da zadaci idu dva puta mesečno pri čemu svako tačno rešenje
donosi poen, a najbolje rešenje u kolu i dodatni poen ili dva. Svaka 3
ili 4 meseca po tri prvoplasirana takmičara/takmičarke bi dobili
odgovarajuće nagrade (no, o tom' po tom'). Naravno, o eventualnim
propozicijama bi se tek dogovorili.
Za početak, voleo bih da vidim da li postoji kritična masa potencijalno
zainteresovanih korisnika? Može i na mail, ako neko ne želi da se u ovom
trenutku javno izjašnjava a učestvovao bi u takmičenju.
algoritmi.422qpele,
> Za pocetak, voleo bih da vidim da li postoji kriticna masa potencijalno
> zainteresovanih korisnika? Moze i na mail, ako neko ne zeli da se u ovom
> trenutku javno izjasnjava a ucestvovao bi u takmicenju.
Dobra ideja, ja sam za.
algoritmi.423popovics,
§> Dobra ideja, ja sam za.
Takodje.
algoritmi.424jjerry,
Da li neko mozhda ima neki dobar algoritam za mapiranje textura
(free direction,perspective correct) odnosno dokument na tu temu na
engleskom/srpskom ? Nisu mi potrebne chitave procedure,samo
detaljno opisan metod (pozheljan pseudo-kod ili komentari)
Pozdrav,J.J..
algoritmi.425jjerry,
Potreban mi je brz algoritam za izrachunavanje aproksimacije
funkcije arkus kosinus. Ako nishta,i sama jednachina aproksimacije
bi bila vishe nego dobrodoshla.
Pozdrav,J.J...
algoritmi.426vule.,
Kako da uradim blur efekat ?
algoritmi.427jjerry,
>>Kako da uradim blur efekat ?
Pa eno imash Moj :) algoritam u grupi..
Inache,grupa Logic je dobila exkluzivno pravo za korishtjenje tog
algoritma za svoje demoe..Pitaj zmilosha onda..
Poz,J.J..
algoritmi.428mcar,
Jel nabavio neko Delphi 4.0 ? Ima li nekih poboljsanja ?
Goran.
Zna li neko kako mogu vise edit box-ova da stampalgoritmi.430bilder,
jel zna neko gorana i nidzu sto napisase preferans;
posto nisam nasao nikakvu dokumentaciju sa programom
zanima me da li se negde moze nabaviti source ovog programa
algoritmi.431aandric,
AA> jel zna neko gorana i nidzu sto napisase preferans;
AA> posto nisam nasao nikakvu dokumentaciju sa programom
AA> zanima me da li se negde moze nabaviti source ovog programa
Neverovatno, ali ja sam bas prekjuce trazio na Netu da nadjem
Gorana i Nidzu! Ljudi su legende i prosto ne mogu da verujem da su
neki nasi tipovi napravili onako dobru igru.
BTW nadjoh danas na Internetu sajt isto nekog naseg programera
odakle moze da se skine Pref za Windows koji se kao multiplejer
igra preko Interneta.Registracija je 30 DM.Ako neko hoce adresu
bacicu je. (naravno i tu je sve na srpskom)
algoritmi.432pavijan,
> BTW nadjoh danas na Internetu sajt isto nekog naseg programera
> odakle moze da se skine Pref za Windows koji se kao multiplejer
> igra preko Interneta.Registracija je 30 DM.Ako neko hoce adresu
> bacicu je. (naravno i tu je sve na srpskom)
______________________________
De si bre do sad sa takvim informacijama? Drugo ako taj pref za win moze da se
igra samo u mrezi inda koj ce mi q... ali daj adresu bar kao polaziste za
trazenje dalje.
Pozdrav od pavijana.
algoritmi.433aandric,
>De si bre do sad sa takvim informacijama? Drugo ako taj pref za win
>moze da se igra samo u mrezi inda koj ce mi q... ali daj adresu bar
>kao polaziste za trazenje dalje.
Pa ja ga pre neki dan nadjoh na Netu, nisam znao ranije
majkemi;)
Na sajtu ne pise nista konkretno u vezi toga ali koliko sam
shvatio moze da se igra samo preko Interneta.
Ima na sajtu i dva screenshot-a iz igre i dosta lepo izgleda.
Adresa je http://bigsun.wbs.net/homepages/s/t/a/stankod/programi.htm
BTW na istoj adresi se mogu skinuti Jamb i neki Pisko (debilnog
li imena, ko da ga prodaje preko Tele-shopa :))
algoritmi.434kojai,
>> jel zna neko gorana i nidzu sto napisase preferans;
>> posto nisam nasao nikakvu dokumentaciju sa programom
>> zanima me da li se negde moze nabaviti source ovog programa
Kasno procitah...
Evo ovako... To sto je neko nasao na internetu moze da se igra single, ali
problem je u tome sto je kompjuter izuzetno glup, tako da je smesno uopste
igrati... Ja sam se takodje raspitivao o nastavku prefa i ortak mi je rekao da
je covek koji je izbacio pref ver 1.0 :) Dragan Zivkovic izbacio nastavak pod
32-bitnim Windowsom i da registracija kosta nekih 30 DM! Mozda je to ono sto
je neko video posto je verzija koja se igra samo preko mreze free, tako da
neverujem da je to Draganova verzija...
Ali ako se ovo sranje nastavi planiram da ce mi biti dosadno, pa da cu i ja
izbaciti svoju verziju prefa... :))
Isa
algoritmi.435bilder,
meni zapravo treba pref za linux ili sors koji bi mogao da iskompajliram
jer preferans ja vrlo slabo igram ,a tatu bi usrecio :)
dakle jel se negde moze naci sors ver 1.0 ?
algoritmi.436vitez.koja,
#=> Neverovatno, ali ja sam bas prekjuce trazio na Netu da nadjem
#=> Gorana i Nidzu! Ljudi su legende i prosto ne mogu da verujem da su
#=> neki nasi tipovi napravili onako dobru igru.
Da, možda je mali problem što pref ne napisaše Goran i Nidža, već
Dragan Živanović iz Niša. Dotični Goran i Nidža su samo "crackovali"
gotov program (tj. potpisali se).
sk
algoritmi.437aandric,
CY> #=> Neverovatno, ali ja sam bas prekjuce trazio na Netu da
nadjem
CY> #=> Gorana i Nidzu! Ljudi su legende i prosto ne mogu da
verujem d
CY> #=> neki nasi tipovi napravili onako dobru igru.
CY>
CY> Da, možda je mali problem što pref ne napisaše Goran i
Nidža,
CY> već Dragan Živanović iz Niša. Dotični Goran i Nidža su samo
CY> "crackovali" gotov program (tj. potpisali se).
Otkud znas? Mislim i ja sam uspeo da se potpisem u program na onaj
pocetni screen, ali ne i na kraj, mada ni to verovatno nije neki
problem, ali gde god sam video doticnu igricu pisalo je made by
Goran & Nidza.
algoritmi.438ventura,
> Otkud znas? Mislim i ja sam uspeo da se potpisem u program na onaj
> pocetni screen, ali ne i na kraj, mada ni to verovatno nije neki
> problem, ali gde god sam video doticnu igricu pisalo je made by
> Goran & Nidza.
Ja mogu da se potpisem gde oces u ma kojoj igrici i da napisem sta ocu,
sto neznaci da sam ja tu igricu napravio, pogotovo ako je to neka windows
aplikacija.
BTW Ima jedno programce koje se dobija uz BorlandC a zove se Workshop,
i njemu moze da se ucita bilo koji win program, da se prevode meniji,
razne poruke u programu, da se menja grafika unutar programa, tj da se menja
sve u programu osim koda...
algoritmi.439aandric,
AA> BTW Ima jedno programce koje se dobija uz BorlandC a zove se
AA> Workshop,
AA> i njemu moze da se ucita bilo koji win program, da se prevode
AA> meniji,
AA> razne poruke u programu, da se menja grafika unutar programa,
AA> tj da se menja
AA> sve u programu osim koda...
Ajd' ako nije problem shibni taj Workshop ovamo.
algoritmi.440ventura,
> Ajd' ako nije problem shibni taj Workshop ovamo.
Ide...
workshop.exealgoritmi.441kojai,
>> Ide...
...za ovo treba samo jedno stotinjak DLL-ova... :)
Ako ti nije tesko posalji i to! :)
algoritmi.442kojai,
>> Dragan Zivanovic iz Nisa. Doticni Goran i Nidza su samo "crackovali"
Da...
algoritmi.443vitez.koja,
#=> Otkud znas? Mislim i ja sam uspeo da se potpisem u program na onaj
#=> pocetni screen, ali ne i na kraj, mada ni to verovatno nije neki
#=> problem, ali gde god sam video doticnu igricu pisalo je made by
#=> Goran & Nidza.
Pa recimo da znam Dragana Živanovića koji je taj program valjda i
prodavao u prvo vreme (imao je i neku primitivnu zaštitu). To što si
ti vidjao Goran & Nidža verziju samo znači da se brzo proširila u
početku, kasnije je samo stvar rutine (pogađaš već da je malo trulo da
autor piratuje svoj program)
sk
algoritmi.444qpele,
> BTW Ima jedno programce koje se dobija uz BorlandC a zove se Workshop,
> i njemu moze da se ucita bilo koji win program, da se prevode meniji,
> razne poruke u programu, da se menja grafika unutar programa, tj da se
> menja sve u programu osim koda...
Pu, znam ja za taj workshop, odavno on postoji ali nisam znao da to moze.
algoritmi.445qpele,
> >> Dragan Zivanovic iz Nisa. Doticni Goran i Nidza su samo "crackovali"
>
>
> Da...
Ne...
Kladim se da je taj Dragan Zivanovic hteo da profitira na tudjoj pameti :)
algoritmi.446saxon,
> BTW Ima jedno programce koje se dobija uz BorlandC a zove se Workshop,
> i njemu moze da se ucita bilo koji win program, da se prevode meniji,
> razne poruke u programu, da se menja grafika unutar programa, tj da se
> menja sve u programu osim koda...
Svi Win-programi (osim onih najtrivijalnijih) imaju, kao svoj integralni
deo tzv. "resurse" u koje spadaju: meniji, sabloni okvira za dijalog,
tekstualne poruke, bitmape, ikone, kursori i razni drugi korisnicki
definisani elementi. Resursi se pisu, najcesce, u obliku ascii-skriptova
(.rc fajlovi), prevode u binarni (.res) format i dodaju na izvorni kod
Win-programa kao manje-vise nezavisna celina, tek nakon kompajliranja i
linkovanja klasicnog programskog koda. Pametan programer koji cilja na
trziste vise zemalja uvek ce sve elemente koje zavise od govornog
podrucja strpati bas u rc-fajl kako bi intervencijom u samo jednom
fajlu mogao brzo da napravi verziju za neko novo trziste (dovoljan je
jedan malo priuceni prevodilac). Na zalost, tako pedantno napravljenih
programa koji se mogu sa engleskog na srpski 100% prevesti obicnim
Workshopom nema mnogo.
Jos jedan razlog zbog koga su resursi izmisljeni: Prilikom startovanja
programa, resursi se ne ucitavaju sa diska u RAM-memoriju zajedno sa
izvrsnim kodom programa, vec se to desava tek kad neki resurs (ikonica,
novi meni ili slicica) zatreba. Time se smanjuje zauzece memorije, uz
neznatno povecanje opterecenja diska i zanemarljivo usporenje rada
programa.
Pomenuti "Resource Workshop" ume da barata (pravi i odrzava) rc-fajlove,
kompajlira resurse u res-format ali i da manipulise resursima koji
postoje u vec postojecim exe- i dll-fajlovima. Treba malo opreznosti u
svemu tome, tj. treba znati sta se sme menjati a sta ne, inace se moze
desiti da program po kome se ceprka posandrca i postane neupotrebljiv
(svaki resurs ima svoj tekstualni ili numericki identifikator koji ne
treba cackati). Na zalost, Workshop-om se ne moze promeniti bas sve:
poruke koje su tvrdo kodirane u izvrsnom kodu ili predstavljaju
integralni deo operativnog sistema mogu se prepraviti samo klasicnim
hakerajem.
algoritmi.447morkin,
Potreban mi je neki program koji se bavi isecanjem proizvoljnih oblika sa
zadate (pravougaone) površine tako da bude najmanje škarta. Načuo sam da
Microsft ima neki program za to, ali čovek koji mi je preneo informaciju
nije znao tačan naziv, misli da je nešto kao Itemization.
Svaka pomoć dobrodošla.
algoritmi.448obren,
> Potreban mi je neki program koji se bavi isecanjem proizvoljnih oblika
> sa zadate (pravougaone) površine tako da bude najmanje škarta. Načuo sam
> da Microsft ima neki program za to, ali čovek koji mi je preneo
> informaciju nije znao tačan naziv, misli da je nešto kao Itemization.
I jednom mom poznaniku je potreban takav program, pa ako neko ima bilo
kakav koristan info (naziv programa ili proizvođača, URL i sl.) bilo bi
lepo da kaže :)