Post #3060400
2026-06-01 05:23 UTC
Onpa voittajafiilis, kun sain monen tunnin työn jälkeen löydettyä, missä piili vika algoritmissa, jonka periaatteessa ymmärsin, mutta joka silti tuotti käsittämättömiä tuloksia. Ei se mitään, että ongelmat olivat ihan itse tekemiäni, ratkaisemisen tuoma hyvä olo on silti hieno kokemus. Tätä ei olisi saanut, jos homman olisi tehnyt tekoälyllä!
(Pari ammattilaisvinkkiä PHP-koodaajille: array_slice($array, $count) ei muuten tee samaa kuin array_slice($array, 0, $count) eikä rsort($array) tee samaa kuin Javan Collections.reverse(array). Tuo jälkimmäinen varsinkin oli pirullinen, kesti jotenkin todella kauan hoksata että siinä pitäisi kyllä olla array_reverse(). Mutta tulipa tarkastettua, mitä tuossa kohtaa tapahtuu, ja silloin sytytti.)
Nyt minulla on toimiva PHP-versio Chris Okasakin Javalla koodaamasta TradeMaximizerista, jolla ratkotaan ketjuvaihtoja. Ketjuvaihdot ovat erinomainen vaihtokaupan muoto, jossa osallistujat kertovat mitä antavat tarjolle ja mitä mistäkin asiasta haluavat vaihdossa. Algoritmi ratkoo vaihdot sitten niin, että mahdollisimman moni saa mitä haluaa. Vaihtoketjut (A antaa tavaran B:lle, joka antaa tavaran C:lle, joka antaa tavaran D:lle, joka antaa tavaran A:lle) voivat parhaimmillaan olla kymmenien, jopa yli sadan osallistujan mittaisia.
Näitä on harrastettu erityisesti lautapelipiireissä, mutta pyöritin joskus jollain foorumilla oikein mainion metalli-CD-vaihdon. Aikaisemmin ketjuvaihtojen pyörittäminen on ollut vähän työlästä, koska työkalut eivät ole hirveän hyviä, mutta nyt olisi kova pyrkimys tehdä vaihtojen järjestämisestä ja vaihtoihin osallistumisesta helppoa. Siihen tarvitaan palvelimella PHP:lla pyörivä TradeMaximizer, ja nyt meillä sellainen on.
Replies (0)
No replies.