alles over je Palm Treo smartphone of PalmOS pda
|
Registreer | FAQ | Ledenlijst | Kalender | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
#21
|
|||
|
|||
My 2 cents
Interessant allemaal, maar beide oplossingen zouden niet de mijne zijn, omdat ze maar een beperkt deel van de mogelijke delingen geven.
Om een voorbeeld te geven: Produkt = 100 Geboden oplossing komt met een maximale deler van 10, terwijl ook bijv. 2x50=100 Ik zou het volgende doen: Produktschatting Ps = int(random * max) Deler 1 D1 = int(random * (Ps/2) + 1) (geeft maximum range) Produkt P = Ps - (Ps % D1) (% = mod = restwaarde van Ps wanneer gedeeld op D1) Deler 2 D2 = P / D1 ... Voorbeeldje: Ps = 100 D1 = 49 P = 100 - (100 % 49) = 100 - 2 = 98 D2 = 98 / 49 = 2 enzovoorts.... euhh... nooit geprogrammeerd in de C variant voor Palm... zit toch neem ik aan wel een % operator in? Hier in Java: public class test { public static void main(String args[]) { int max = 100; for(int t=0;t<100;t++) { int p = (int) (Math.random() * max); int d1 = (int) (Math.random() * (p/2) + 1); p = p - (p % d1); int d2 = (int) p / d1; System.out.println(p + "/" + d1 + "=" + d2); } } } Laatst gewijzigd door Damanios; 14 december 2003 om 01:10. |
#22
|
||||
|
||||
Citaat:
euhh... nooit geprogrammeerd in de C variant voor Palm... zit toch neem ik aan wel een % operator in?
Randomizer is iets anders: Int16 SysRandom (UInt32 newSeed)
__________________
Rob. The real source of applications. ___________________________________ |
#23
|
||||
|
||||
Citaat:
Op 14-12-2003, om 09:29 heeft RobB dit gezegd in bericht #22
Ja hoor , het voorbeeld kan je bijna geheel overnemen. In het voorbeeld van Damanios kan ook geen getal groter zijn dan max. |
#24
|
||||
|
||||
Wow!
Eh... wow! Ik zal alle oplossingen maar proberen als ik tijd heb. Bedankt!
__________________
Mijn zelfgemaakte Palm OS-programma's |
#25
|
||||
|
||||
Ben ik toch ook in de (muizen-)val van Bram getrapt...
Dit is beter: '// stel grenswaarden in max=100 maxgrens=int(sqrt(max)) '// kies waarden voor het product x= int(rand()*(maxgrens-1)+1) y= int(rand()*(int(max/x)-2)+2) [Bestandje met Damianos en mijn methode bijgevoegd; zowel als prc als als broncode]
__________________
groet, r2d2 My last Sony... |
#26
|
||||
|
||||
Het ligt ongetwijfeld aan mijn emulator, maar jouw (René) methode gaf erg veel 1*X vragen.
|
#27
|
||||
|
||||
Kon de verleiding (weer) niet weerstaan. Ik heb beide 100x geprobeerd. Bij mijn methode kwam er 9x een berekening met 1, bij Damianos 18x (daar zit natuurlijk een protie toeval in).
Dat bij mijn methode het percentage '1x-berekeningen' ongeveer 10% is volgt uit 1) de keuze van max (100) 2) de berekening van sqrt(max)=sqrt(100)=10 -> de kans dat 1 gekozen wordt is ongeveer 1 op 10. Ik heb het bij Damianos'methode niet geanalyseerd, maar daar kunnen beide getallen 1 worden. Ik gok even uit het vuistje daarom dat de kans op een 1-berekening daar dus 2x zo groot is. Ik heb de kans daarop bij mijn methode daarop overigens kunstmatige verkleind door in de berekening van y de waarde 1 uit te sluiten. Bij damianos kan overigens ook de berekening 1x0 voorkomen, omdat hij de waarde van y alleen tot positieve waarden beperkt.
__________________
groet, r2d2 My last Sony... |
#28
|
|||
|
|||
Het zou heel goed kunnen dat mijn oplossing geen geweldige statistische verdeling oplevert, maar teveel hoge of lage waardes geeft. Ik heb het concept snel in elkaar gezet met als enige reden dat ik een volledig dekkende oplossing wou hebben.
Of het ook enig praktisch nut heeft, speelde voor mij totaal geen rol. Wat betreft de 1 en 0 problemen, die zijn redelijk eenvoudig te fixen door: Ps = int(rand() * (max - 2) + 2) 'produkt is minimaal 2 D1 = int(rand() * (Ps/2 - 2) + 2) 'D1 dan ook minimaal 2 D2 kon (en kan) alleen 1 worden als Ps erg klein is. D1 is nl. (bijna) altijd kleiner dan P / 2. Dus D2 is dan altijd groter dan P / (P / 2) = 2P / P = 2. (of zoiets... ) |
#29
|
||||
|
||||
Versie 1.1 uit!!
U heeft er even op moeten wachten (wat heet, een maand! ), maar hier is 'ie dan eindelijk: versie 1.1!
Nieuw/aangepast: * menu: extra opties en overzichtelijkere scrollbars * numpad: nieuwe knop 'M' voor Menu en de knop '<--' is nu 'C' * delen: werkt nu perfect * worteltrekken: nieuw en werkt goed * kwadrateren: nieuw en werkt ook goed Ik sta weer open voor kritiek, foutmeldingen enz... Veel plezier ermee!
__________________
Mijn zelfgemaakte Palm OS-programma's Laatst gewijzigd door Aaron; 28 december 2003 om 16:09. |
#30
|
||||
|
||||
Iemand tips/bugs ???
__________________
Mijn zelfgemaakte Palm OS-programma's |
#31
|
||||
|
||||
Citaat:
Op 04-01-2004, om 17:10 heeft Aaron dit gezegd in bericht #30
Iemand tips/bugs ??? edit: Maar de andere keren doet hij het wel goed edit2: bij grote getallen verdwijnt een deel van het wortelteken edit3: en dat wortelteken komt nooit meer terug tenzij ik naar het hoofdmenu ga edit4: Bij worteltrekken/kwadrateren is het grootste getal wat ik tegenkom maar 81, terwijl ik tot de 200 wil en het is vaak 0 of 1 edit5: het lijkt wel een anti-kinderafschrikfunctie te hebben, ook bij delen kom ik niet over de 81. en ik wil ook zien wat ik heb gehaald als ik klaar ben edit6: toch een grotemensenfunctie, bij optellen gaat hij nu wel tot 294, terwijl het maximum 200 is edit7: aantal fout en aantal goed met meer dan 2 cijfers zie ik alleen eerste cijfer edit8: Jipieeeeee, met vermenigvuldigen gaat hij wel tot de 4176 en nog wel hoger Mag ik vragen: heb je het zelf wel getest? Laatst gewijzigd door Bram; 04 januari 2004 om 20:49. |
#32
|
||||
|
||||
my 2 cents: ik heb alleen naar delen, worteltrekken en kwadrateren gekeken:
Bij 20 delingen kwam het bij mij nogal eens voor dat dezelfde opgave soms 2x of zelfs vaker in de reeks voorkwam. Misschien is het een idee om vooraf de reeks van 20 opgaven te maken en te zorgen dat er geen dubbele opgaven in zitten. Dat kan met twee array x en y als je opgave i maakt, voeg je die pas aan de reeks toe als ze niet gelijk is aan de voorgaande 1 t/m i-1 opgaven (x en y beide ongelijk). Deze opzet kun je natuurlijk ook voor de andere opgaven soorten gebruiken, maar misschien vind je het juist handig. Het kan een manier zijn om opgaven in te slijpen. Bij het worteltrekken raakt bij mij in de emulator het wortelteken 'beschadigd' (OS3). Misschien dat je de scrollbars kunt vervangen door echte sliders. Scrollbars zijn eigenlijk meer om een zichtbaar iets te verschuiven (een tekst bijvoorbeeld). Een slider is bedoeld om een waarde te selecteren; en dat is wat je hier doet. (Het viel me overigens ooit op dat de slider in HB++ 1.0.1 altijd te klein (niet hoog genoeg) wordt weergegeven als je hem zelf niet resized, maar misschien is dat in de huidige versie gerepareerd).
__________________
groet, r2d2 My last Sony... |
#33
|
||||
|
||||
Toen ik gisteravond in bed lag, en AvantGO doorgekeken was, dacht ik: kom, laat ik nog even rekenen. 5 sommetjes tot de 5 vermenigvulden zou zeker mij wel moeten lukken. Maar daar wordt ik om de oren geslagen 97x24 en 93x88. Op de basisschool kreeg ik daar altijd een kladblaadje voor. Hoewel ik mij niet uit het veld liet slaan (had ze alle 5 goed, uit mijn hoofd en zonder valsspelen ) lijkt het mij dat je dit wat kindvriendelijker af moet stellen.
Het is ook grappig dat ik 50 sommen kan worteltrekken met getallen tot de 200. Aangezien er maar 15 mogelijkheden zijn ((0..14)˛) krijg ik dus minimaal 3x dezelfde. |
#34
|
||||
|
||||
Zodra ik tijd heb (ik zit op 3vwo dus ik heb 't momenteel redelijk druk) ga ik het programma helemaal herschrijven. De instellingen zullen bijv. in een apart form komen, en bovengenoemde fouten zullen verleden tijd zijn.
Groeten, Aaron.
__________________
Mijn zelfgemaakte Palm OS-programma's |
#35
|
||||
|
||||
Versie 1.3
Nou, met deze versie kunnen jullie weer even vooruit!!
__________________
Mijn zelfgemaakte Palm OS-programma's |
#36
|
||||
|
||||
Reviews / bugmeldingen?
Iemand?
__________________
Mijn zelfgemaakte Palm OS-programma's |