![]() |
Java+code programmeren
Hoe zou ik een algoritme kunnen schrijven, dat:
Er zijn x operaties gedefinieerd die ofwel "true" of "false" teruggeven: operatie1 operatie2 ... operatieX Ik wil willekeurig één van die operaties laten uitvoeren en als die operatie "true" teruggeeft, dan moet het stoppen, als "false" teruggegeven wordt moet een andere willekeurige operatie uitgevoerd worden, met de nadruk op "andere". Dit gaat zo verder, als blijkt dat op het einde elke operatie (van 1 tot x) "false" heeft teruggegeven dan moet het stoppen, wat op zich logisch is. Telkens moet een willekeurige operatie gekozen worden, "willekeurig" mag je letterlijk opvatten. De kansen per operatie zijn gelijk. Groeten Hopelijk kunnen jullie me helpen of een (duidelijk) aanzet geven. |
de kans op succes na elke operatie is dus gewoon steeds .5? En het moet dus uit de reeks van op.1 tot op.x een willekeurige op, kiezen, kijken of het true of false is, en als die true is stoppen, en als die flase is opnieuw proberen met een andere op.
ik wil wel kijken wat ik kan doen maar het lastige is altijd hoe je het weer wilt geven wat het script doet. |
het aantal operaties, X dus, op voorhand vast of moet die ingegeven kunnen worden?
maw, mag je programmeren ifv X? |
ik ken geen java, maar zal het in php doen zodat je het eenvoudig kan omzetten.
*** // declaratie van de veriabelen // $numoper=5; $numcount=0; // de array $getal bepaalt of een bepaalde operatie al is overlopen, hier volgt de declaratie: // for ($a=1;$a<=$numoper;$a++) { $getal[$a]="0";} // de functie die een random operatie uitvoert. als een gekozen operatie als is uitgevoerd, kiest hij een nieuwe // function randomop() { $rand=rand(1,$numoper); if ($getal[$rand]==1) { randomop(); } else { $getal[$rand]=1; $numcount++; hier komt de regel die operatie nummer $rand uitvoert } } // overloop de functie totdat alle operaties zijn overlopen // while ($numcount<$numoper) randomop(); *** dit programma overloopt dus alle functies in een random volgorde. als je wilt dat ze stop wanneer je een false terugkrijgt, moet je daar maar een die, stop, break of halt zetten, wat in java ook wordt gebruikt. ik hoop dat je hier iets mee bent. |
Euh, kverstaat lijk niet echt, met al die tekentjes en zo, maar ik begrijp de clu wel. De tijdscomplexiteit van dit programma zal wel heel groot zijn.
Euh, die x is verondersteld gekend bij het begin. Groeten |
ik ben geen java techneut maar het probleem bij mij zit in het starten van operatie nr zoveel
je kan niet zoiets doen int i = 1; operatiei(); dat verstaat hem niet als operatie1 dus dacht ik met een switch en case te werken, dat gaat normaal wel maar mij is het niet deftig gelukt |
je kan wel alle operaties in een array zetten en dan $operatie[$i] uitvoeren.
|
Citaat:
(pas op, zoals ik al zei, ik ben gn javatechneut, het kan mss toch) |
bulbanos
Dat van u, daar had ik ook meteen aangedacht, en ik kwam tot de conclusie (dat denk ik toch) dat dit onmogelijk is. wmostrey een rij operaties in Java, bestaat dat? |
as i said, ik ken geen java :bloos:
|
Dit mag hier staan, hoor, geen enkel probleem. Maar het mag als je wilt ook naar Software en Multimedia, omdat ik denk dat daar misschien meer mensen zijn die er verstand van hebben dan hier.
Als je wilt dat ik deze verplaats, pm me dan maar (of mail, ook goed). |
Citaat:
Maar geef eens een goede reden waarom het niet met een switch-case kan? je kunt toch zeggen: switch.... case1: enz. zo kun je een rij operaties declareren (dacht ik tenminste) |
met een switch-case is nogal onhandig : misschien zijn er wel 12904 operations, of mss moet het aantal wel flexibel zijn.
kheb ooit wel java gedaan, was er best goed in, maar is jaaaren geleden. dus breng ik dit als een vraag : heeft Java niet gewoon pointers ? dan kun je dus eerst in een procje een array vullen met de pointers naar de operations : bv. : <lusje met naampje 'i'> arraymetpointers[i] = 'getsubpointer' (ofzo) string("operation" & i) <eind lusje> en de rest kun je zelf wel invullen. Kweenie, hoor, tis maar een ideetje. Ut kan in C, iig. |
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 13:37. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.