Kategorijos ‘Smagumynai’ Archyvas



Monty Hall problema arba kaip praturtėti

Parašė: Tadas, 2009-01-24 | Komentarų: 26
Kategorijose: Smagumynai

Nepraleiskite straipsnio – galbūt šios žinios jums kada nors uždirbs krūvą pinigų :].

Tarkime, dalyvaujate žaidime. Prieš jus 3 durys (žr. iliustraciją viršuje). Už vienų iš jų (tarkime #2) yra automobilis, už kitų dvejų ožkos (#1 ir #3). Tarkime, jūs pasirenkate #1 duris. Vedėjas atidaro duris, už kurių yra ožka (#3), ir siūlo jums pakeisti jūsų pasirinkimą. Klausimas: ar jūs turite daugiau šansų laimėti automobilį pasilikdami prie savo spėjimo, ar pakeitę jį?

Atrodytų, renkantis vieną iš dviejų variantų šansai yra lygūs – juk bet kuriuo atveju nežinome, už kurių durų yra automobilis. Bet pasirodo ne – pakeitus savo spėjimą tikimybė laimėti automobilį yra 2/3, o pasilikus su savo spėjimu – tik 1/3.

Kodėl? Pasilikdamas su savo pirmu sprendimu jūs laimėsite tik tuo atveju, jei iškart pasirinkote automobilį, t.y. šansai lygūs 1/3. Atitinkamai šansų pasirinkti vieną iš ožkų yra 2/3. Pasirinkę ožką ir pakeitę savo spėjimą jūs laimėsite. Kadangi tikimybė pasirinkti ožką yra 2/3, todėl ir tikimybė laimėti pakeitus spėjimą yra 2/3.

Neįtikinau? Nieko baisaus. Parašiau skriptą, kuris simuliuoja žaidimą ir skaičiuoja, ar iš tiesų šansų laimėti pakeičiant savo sprendimą yra daugiau.

<?php
/*
Tadas Syčiovas, 2009

http://laisvai.net

-----
Monty Hall Problem simuliacija

http://en.wikipedia.org/wiki/Monty_Hall_problem

*/

$staying=0;
$switching=0;
//kiek kartų kartoti žaidimą?
$count=100000;

for ($i=0;$i<=$count;$i++) {
	$choises=array('goat', 'goat', 'car');
	shuffle($choises);
	$user_choise=rand(0, 2);

	//vedėjas atidaro vienas duris. tai negali būti žaidėjo pasirinktos durys arba durys, už kurių stovi automobilis
	for ($a=0;$a<=2;$a++) {
	     if ($a!=$user_choise and $choises[$a]!='car'){
	          unset($choises[$a]);
	     }
	}

	//ar laimime pasilikdami su pirmu sprendimu, ar pakeisdami jį?
	if ($choises[$user_choise]=='car')
		$staying++;
	else
		$switching++;
}

echo 'Staying: '.(100/$count*$staying).'%<br>
Switching: '.(100/$count*$switching).'%';
?>

Skriptas tik viską patvirtina:
Staying: 33.52%
Switching: 66.49%

Skaičiukai po kablelio varijuoja, bet rezultatas aiškus.

Na štai. Pasirodo teorija irgi gali būti įdomi :]. Jei kada šio straipsnio dėka laimėtumėte milijoną, būtų visai gražu pastatyti P4I gykams alaus :].

Daugiau informacijos: http://en.wikipedia.org/wiki/Monty_Hall_problem

CHRISTMAS D00M | Kalėdinis sveikinimas nuo P4I

Parašė: Tadas, 2008-12-20 | Komentarų: 2
Kategorijose: P4I, Smagumynai

Geras elfas

Kaip ir praeitais metais, šiais P4I chebra pristato mažą kalėdinę pramogą. Šį kartą tai žaidimas CHRISTMAS D00M.

Praeitais metais viską padarėm per kelias valandas, šių metų kūrinys pareikalavo kelių dienų. Kitų metų šventėms turbūt reikės pradėti ruoštis jau birželį :]

Jaukių Kalėdų ir linksmų Naujųjų!

Pasidaryk pats: fraktalai

Parašė: Armandas, 2008-07-30 | Komentarų: 8
Kategorijose: Kodas, Python, Smagumynai

Mandelbrot set

Mandelbrot set

Fraktalas yra geometrinė forma, kuriai yra būdingas panašumas į save, bei begalinis detalumas. Mandelbroto aibė yra vienas iš žinomiausių fraktalų pasaulyje, išgarsėjęs apie 1980 metus. Vėlus tokio įspūdingo objekto atsiradimas buvo nulemtas modernių kompiuterių nebuvimo.

Nors Mandelbroto aibė yra begalo (tikrąja šio žodžio prasme) komplikuota forma, ją sugeneruoti galima naudojant neįtikėtinai paprastą formulę: z = z2 + C. Čia z yra iteruojamas kompleksinis skaičius, o C – konstanta – koordinatė kompleksinėje plokštumoje. Read the rest of this entry »

FreeBSD

Parašė: Armandas, 2008-02-05 | Komentarų: 3
Kategorijose: Gyvenimas, Smagumynai

Prieš savaitę, kitą, užklydau į DeskopBSD svetainę ir pamačiau, kad jau išėjo 1.6 versija. Nutariau ją išbandyti, nes prieš tai bandyta beta man neveikė. Taigi parsisiunčiau disko atvaizdą, išsikepiau, suinstaliavau į skirsnį, kur prieš tai buvo windows. Po reboot’o – vėl ta pati problema – neranda monitoriaus. Aš, žinoma, tai numačiau ir nusikopijavau xorg.conf failą, kurį naudojo live cd. Nepadėjo. Tuomet nusprendžiau spjauti ant DesktopBSD ir įsirašyti FreeBSD. Tomas dar labai aktyviai siūlė Arch’us, bet norėjau pažinti unix’ą.

Pirma diena

Taigi, iš freebsd.org parsisiunčiau disc1 atvaizdą, kuris įdiegia tik pagrindinę sistemą, o visą kitą reikia siųstis per ftp, arba diegti iš kitų diskų. Įrašiau sistemą, ir tada, žinoma, reikėjo prisijungti prie interneto. Bėda ta, jog pas mane tėra wireless ryšys ir reikėjo jį priversti veikti. Su sąlyga, kad tuomet turėjau du kompus, tai padaryti buvo šiek tiek lengviau. Skaitydamas manualą ir mailing list’us, įsimečiau iwi draiverį, nurodžiau tinklo pavadinimą bei slaptažodį ir vualia. Internetas neveikia :D Skrolinu manualą ir matau: dhclient iwi0. Vedam. Tada ping -c 2 google.com – veikia. Na džiaugsmas begalinis, nes tai reiškia, kad galėsiu laisvai tęsti, net turėdamas vieną kompiuterį. Kas toliau? Na pirmiausiai tai nusprendžiau susimesti grafinę aplinką. Kadangi mano pagrindinė os – Kubuntu ir prie KDE jau atsisėdėjau, tai “fryškei” nutariau mesti gnomą. Pirmą kartą po ~2 valandų siuntimo ir kompiliavimo gavau klaidą. Nenusiminiau ir nutariau pabandyti kitaip. Šį kartą pasirūpinau visais reikalingais paketais ir gnomas instaliavosi tvarkingai:

Tada reikėjo jį kažkaip paleisti, startx neveikė taip, kaip norėjau, tad Tomas pasufleravo gdm. Valio. Pirma mintis: “O dabar?”. Jau pradėjau prarasti enztuziazmą, tad palikau darbų kitai dienai:

  • automatizuoti gnome aplinkos paleidimą sistemai užsikrovus
  • automatizuoti wireless’o konfigūravimą ir prisijungimą arba įdiegti kokį menedžerį
  • patalpinti savo userį į wheel grupę, kad galėčiau kartas nuo karto dirbti kaip root’as
  • priversti veikti usb pelę

Antra diena

Entuziazmas vėl sukilo. Supratau, kad tas pats, žinių ir iššūkių ištroškęs gykas, tūnantis manyje, kadaise privertė įsirašyti Ubuntu, dėl kurios mečiau windows.

Pirmas dalykas, kurį padariau – pasirašiau bash skriptuką, prijungiantį prie nurodyto bevielio tinklo. Po to paredagavau /etc/group failą, kad mano useris galėtų naudoti su komandą. Ir galiausiai sugalvojau įsimesti Amarok. Bereikalo. Dėl vienos programos man kompiliavo visą KDE aplinką, kas truko apie 6 valandas. Per tą laiką šiek tiek patiuningavau gnomą:

ir kritau į lovą. Prabudęs apie pusę dviejų radau KDE sukompiliuotą. Dabar galvoju kde pašalinti (čia logikos neieškokit :D), ir kadangi turiu gnome, rinktis atitinkamas programas.

Mano nuomonė apie FreeBSD sutampa su Maksimo – ji ne desktopui, na gal admino desktopui, bet ne paprasto userio. Reikia daug laiko praleisti skaitant manualus, konfigūruojant, kompiliuojant. Man tai visai patinka, vis sužinau kažką naujo. Nors kol kas prie FreeBSD tikrai nepereisiu, bet kompe jį pasiliksiu ir po truputuką tobulinsiu :)

Nuo HTML iki PHP (+MySql)

Parašė: Bad.F.Word, 2008-01-05 | Komentarų: 10
Kategorijose: PHP, Programavimas, Smagumynai

arba Kaip pradėti programuoti PHP

…. kad nereiktų kiekvienam rašyti atskirai …

Softas

Be užsispyrimo ir noro tobulėti, tai bene svarbiausias dalykas norinti pradėti dirbti su PHP ir MySql. Tai gali būti bet koks hostingas, teikiantis atitinkamus modulius (nerekomenduojama, nes darbas vyksta lėčiau) arba serveris tavo PC.
http://www.apachefriends.org/en/xampp.html atsisiunti basic package tavo OS ir įsirašai. Skype gali naudoti 80 portą (kam?), Išjungiam: nustatymai > sujungimas >nuimam varnelę nuo‚ naudoti 80 arba …..
Darbalaukyje randam XAMPP Control Panel, per jį paleidžiam apache ir mysql (filezila ir mercury nereikia).
Kartais būna kad windozė disable‘ina mūsų servisus, todel jei kas neveikia patikrinkit ar control panel> Administrative Tools > services prie mysql ir apache yra auto arba manual (ne disabled).
Jei http://localhost matot ką nors panašaus į xampp valdymo panelę valio!!
Per paiešką susirandant htdocs katalogą. Jis bus jūsų serverio pagrindinis katalogas, kur turi gyventi visi jūsų skriptai. Jį galima pakeisti kitu, bet čia jau vėlesnė užduotis ;)

Pagaliau galim pradėti mokytis

Aš asmeniškai rekomenduočiau nusipirkti knygą php4/5 vadovas. Bent jau php4 vadove yra tikrai daug gerų patarimų pradedančiajam.
php.pdf Daauug naudingos info apie php LIETUVIŠKAI ir laisvai :)
Taip pat būtina perskaityti bent daugumą straipsnių http://www.php.lt/render/Articles Ypatingai geriau lietuviškai nelabai ką ir rasit. Perskaityti ir suprati kas kaip ir kodėl taip pat pageidautina. +ten yra nemažai komentarų, kurie gal būt tau padės.
Kaip rasti reikiamą funkciją?
http://php.net/funkcijos_ar_komandos_pavadinimas
pvz. reikia rasti funkciją dirbančią su bylomis http://php.net/file arba reikia pakeisti paveiksliuko dydį http://php.net/resize ir antras rezultatas jau yra tai ko tau reikia. Tas pats yra ir su http://mysql.com/

Kas toliau

Kai jau mintinai moki bent tai kas yra http://www.php.lt/render/Articles, gali bandyti sukuri pvz. mini bloginimo sistemėlę ar naujienų skriptą. Tavo vaizduotės reikalas.
Gana gera praktika pradedančiajam yra jau sukurtų sistemų analizavimas. http://www.opensourcecms.com/index.php?option=com_content&task=view&id=2170 (čia tik pavyzdys, pat asmeniškai nebandžiau, bet kadangi tai Lite kategorijai priklausanti CMS, turėtų tikti) ar tą patį wordpress‘ą. Parsisiunti ir narplioji, narplioji, narplioji… Tai darydamas ne tik suprasi kas kaip veikia, bei ir kaip reikia tvarkingai rašyti kodą. Jei viską sukiši į vieną lapą, jau kitą rytą net pats nebesuprasi ką ten rašei.

Vis dar kažko nežinai? Pirmiausia pabandyk paklausti google, jei TIKRAI neradai (net ir ne lietuviškai) bandyk klausit forume. Tik „noriu super saito padarykit“ stiliaus temos NIEKADA nesulauks normalaus atsakymo!

Nori dar pakelti savo skilus? http://www.google.lt/search?q=php+tutorial imi ir skaitai viską (ok bent dalį) kad ir ne iš eilės, bet bent rimtesnius straipsnius ir tobulėji.

Sėkmės tobulėjant!!!
O LIA LIA :)