Hehe, vandaar. Ik was al bang dat tvp zo'n gemeengoed was geworden dat mensen de hele werking ervan waren vergeten, want je had hier inderdaad al meerdere keren in gepostquote:Op maandag 19 juni 2006 22:57 schreef -J-D- het volgende:
[..]
Nieuwsgierig modje...
Er was wel gepost maar het topic stond niet boven aan mn My At list. Sterker nog, het stond er niet in.
Dus ik dacht :tvp.
Had hier wel gepost zie ik nu, dus blijkbaar was ik tijdelijk blind
Sorry, ik leg het brak uit.quote:
1x eerder.quote:Op dinsdag 20 juni 2006 15:20 schreef Litso het volgende:
[..]
Hehe, vandaar. Ik was al bang dat tvp zo'n gemeengoed was geworden dat mensen de hele werking ervan waren vergeten, want je had hier inderdaad al meerdere keren in gepost
111quote:Op dinsdag 20 juni 2006 17:21 schreef Kindervriend het volgende:
[..]
Sorry, ik leg het brak uit.
Het is dus 'de kans dat het totaal aantal ogen ten hoogste 5 is', dat is de beschrijving...
Je gooit dus met 3 dobbelstenen... en bij elkaar opgeteld mag je niet meer dan 5 gooien.
Je vergeet er een paar denk ik.quote:Op dinsdag 20 juni 2006 17:23 schreef -J-D- het volgende:
[..]
111
112
113
121
122
211
221
7 mogelijkheden van de 6*6*6 = 7/216
Dat klopt niet, want zelfs als de vraag zou zijn om de kans dat er nooit hoger dan 5 geworpen wordt te berekenen, houd jij geen rekening met de situatie dat er één of twee zessen geworpen wordt. (5/6)3 zou wel het juiste antwoord opleveren.quote:Op dinsdag 20 juni 2006 17:22 schreef teigan het volgende:
dat is 1- de kans dat je 3 maal 6 gooit
is dus 1-(1/6)3
Doordat je in 3VWO zit, heb je horizontale en verticale asymptoten gehad.quote:Op dinsdag 20 juni 2006 20:20 schreef Nesle het volgende:
Ik zit in 3VWO en heb een vraag.
Het hoofdstuk gaat over Breuken en Functies
EN deze paragraaf met name over Hyperbolen en rechte lijnen.
Nu heb ik deze vraag:
Gegeven zijn f(x)= 8/x en g(x)= x+2
a Teken de grafieken van f en g in één assenstelsel.
Dit is allemaal niet zo moeilijk maar ik zit altijd zo te klooien met hoe lang ik de x-as en de y-as moet maken. Is daar een trucje voor of is dat echt alleen maar op de gok tekenen?
Maak gewoon eerst even een tabelletje van beide functies. Dan kun je daaraan zien hoe de assen daarop kunt aanpassen.quote:Op dinsdag 20 juni 2006 20:20 schreef Nesle het volgende:
Ik zit in 3VWO en heb een vraag.
Het hoofdstuk gaat over Breuken en Functies
EN deze paragraaf met name over Hyperbolen en rechte lijnen.
Nu heb ik deze vraag:
Gegeven zijn f(x)= 8/x en g(x)= x+2
a Teken de grafieken van f en g in één assenstelsel.
Dit is allemaal niet zo moeilijk maar ik zit altijd zo te klooien met hoe lang ik de x-as en de y-as moet maken. Is daar een trucje voor of is dat echt alleen maar op de gok tekenen?
Vroeger geleerd dat dat zo moest. En onder de 0 vul je een kruisje inquote:Op dinsdag 20 juni 2006 21:15 schreef GlowMouse het volgende:
@-J-D-: niet zo liev om 0 mee te nemen in je tabel
Ja oke, maar het is het 'm juist dat we NU pas asymptoten hebben.quote:Op dinsdag 20 juni 2006 20:28 schreef -J-D- het volgende:
[..]
Doordat je in 3VWO zit, heb je horizontale en verticale asymptoten gehad.
Je ziet dat de HA van f(x) gelijk is aan de y=0
en de VA van f(x) is gelijk aan x=0
Dat is al handig om te weten, want de tabel kan je dan laten lopen met 0 als middelpunt.
-4 -3 -2 -1 0 1 2 3 4
Ik neem aan dat die rechte lijn niet zo lastig is
Je kunt toch bijvoorbeeld een functie f schrijven metquote:Op woensdag 21 juni 2006 12:58 schreef Haushofer het volgende:
Ok, een noodkreet aan de programmeerwonders hier, 't is in Java.
De situatie is als volgt: 2 dieven beroven winkels, en aan het eind van de rit gaan ze de buit verdelen. De waardes van de artikelen wordt in een array gestop, genaamd waarde. De vraag is nou: schrijf een methode ( static boolean verdeelbaar() ) die checkt of de buit in 2 gelijke delen valt de verdelen. Bijvoorbeeld:
Als waarde[]={6,2,1,3} dan kan het wel ( 6 = 1+2+3) maar als bijvoorbeeld
waarde[]={1,2,8,10} dan kan het niet. Dit moet met behulp van een recursieve hulpmethode.
De volgende opdracht is dan, om te vermelden welke artikelen boef 1 en 2 krijgen. Dus alle mogelijke combinaties.
Nou ben ik hier al even mee bezig geweest, maar ik zie echt niet in hoe je dit recursief kunt doen. Met loopjes zou ik zeggen dat je gewoon alle mogelijke combinaties neemt, maar dat lukt ook niet echt... Het moet dus recursief volgens de opdracht. Heeft iemand een idee? Help...
Omdat P(A)P(B) != P(A door B) weet je dat A en B afhankelijk zijn. Omdat P(A|B) en P(B|A) niet gegeven zijn, moet je goed kijken. Je moet dus goed kijkenquote:Op woensdag 21 juni 2006 12:54 schreef Kindervriend het volgende:
P(A) = 0,4
P(B) = 0,2
P(A and B) = 0,2
Dat zijn de gegevens...
P( A and Bc ) = ...
Hoe reken ik dit uit? Het antwoord moet 0,2 zijn, maar ik heb geen idee hoe men hier aan komt...
Ondanks dat het recursief moet, toch het antwoord voor de loop. Elk element uit de verzameling gaat óf naar de ene, óf naar de andere pikkedief. In totaal zijn er dus 2^[aantal elementen] mogelijkheden. Laat een variabele lopen van 0 t/m 2^[aantal elementen] -1.quote:Met loopjes zou ik zeggen dat je gewoon alle mogelijke combinaties neemt, maar dat lukt ook niet echt.
Uhm.... zou je dit nog wat willen toelichten? Begrijp niet helemaal waar je naar toe wilt...quote:Op woensdag 21 juni 2006 13:11 schreef thabit het volgende:
[..]
Je kunt toch bijvoorbeeld een functie f schrijven met
input: de rij getallen as en nog een getal b.
output: een bool die aangeeft of dat tweede getal geschreven kan worden als som van een deelrij van die rij getallen
en die het volgende doet:
als b=0 dan return true,
als as leeg is dan return false,
laat a het eerste getal van de rij zijn en definieer as2 als de rij as met a weggelaten
return f(as2,b) or f(as2,b-a)
Dat is altijd zo bij een if. Je hebt nooit if((a==b) == true). De functie zonder argumenten is alleen om (0,0,0) te testen. Je kunt (0,0,0) vervangen door een willekeurige andere combinatie, maar uiteindelijk moet je vermoedelijk user-input accepteren.quote:De if(.....) is gewoon een afkorting voor if(....) is true, neem ik aan.
| 1 2 3 4 5 6 7 8 9 10 11 12 | if ( i >= waarde.length ) { // alle buit verdeeld return buitA==buitB; } else { if(verdeelbaar(i+1, buitA+waarde[i], buitB)) { // goede verdeling door het volgende aan A toe te kennen return true; } elseif(verdeelbaar(i+1, buitA, buitB+waarde[i])) { // goede verdeling door het volgende aan B toe te kennen return true; } else { return false; } } |
Ja, dat was precies wat ik bedoelde. En dat doe je dan door een functie te schrijven die algemener checkt of een gegeven getal een deelsom van een rij is.quote:Op woensdag 21 juni 2006 13:35 schreef Haushofer het volgende:
[..]
Is het misschien een idee om het gemiddelde gedeelt door 2 van de array uit te rekenen, en te kijken of dit gelijk is aan de som van een deel-array van de array waarde[] ? Of bedoel je dat ook?
Ok, ik begin de opzet wat te begrijpen, maar ik begrijp nog niet helemaal hoe die verdeling precies in zn werk gaat. Wat betekent precies dat het statement (verdeelbaar(i+1,buitA+waarde[i], buitB) true is? Als ik bijvoorbeeld iets neem alsquote:Op woensdag 21 juni 2006 14:05 schreef GlowMouse het volgende:
[..]
Dat is altijd zo bij een if. Je hebt nooit if((a==b) == true). De functie zonder argumenten is alleen om (0,0,0) te testen. Je kunt (0,0,0) vervangen door een willekeurige andere combinatie, maar uiteindelijk moet je vermoedelijk user-input accepteren.
De oplossing die thabit gaf lijkt prima te voldoen, jouw oplossing ook.
Jouw oplossing werkt eigenlijk zo:
Als alles verdeeld is, kijk of A en B allebei evenveel gekregen hebben (hier eindigt de recursie)
Anders: kijk of we een goede verdeling krijgen als we het volgende element aan A geven
Als dat niet het geval is: kijk of we een goede verdeling krijgen als we het volgende element aan B geven.
[ code verwijderd ]
Om uiteindelijk ook weer te geven wie wat heeft gekregen, moet je nog een of twee extra variabelen aanmaken om bij te houden wat je aan A en B hebt gegeven. Bij return buitA == buitB zorg je dat deze volgorde behouden blijft zodat je die later weer kunt geven.
Dat is de recursie, dat 'weet' het programma niet van te voren. Stel nu dat waarde[] ={1,3,2} Verdeelbaar(1,1,0) wordt eerst gedaan. D.w.z. item 1 is verdeeld, en boef A heeft nu een buit van 1 te pakken. Daarna wordt ook de aanroep verdeelbaar(2,4,0) gedaan (boef A krijgt ook item 2), en daarna nog eens verdeelbaar(3,6,0) (hij krijgt ook item 3). Nu zag jij waarschijnlijk al van te voren aankomen dat het geen slimme zet was om boef A ook item twee te geven, maar een computer beschouwt niet zo het totale plaatje, het kan alleen beslissen wat het met dit item hier en nu moet doen. Als uiteindelijk alles verdeeld is (i==3), dan kijkt het of buitA = buitB (wat niet het geval is) en dan geeft het dus 'false' terug. Het programma gaat nu weer een stapje terug in de recursie (het zegt eigenlijk: Okay, boef A, geef jij je laatste item maar terug, want dit werkte niet). En geeft het dan aan boef B. Dan is weer alles verdeeld, nu in een 4 vs. 2 verhouding, en dan kijkt het of dat netjes is, en dat is ook niet zo.quote:Op woensdag 21 juni 2006 14:36 schreef Haushofer het volgende:
Het lichtje gaat steeds feller branden
Nog 1 vraagje dan: hoe weet het programma of de verdeling goed is, in regel 5 of 7 ? Het is denk ik nou wel duidelijk dat ik erg veel moeite heb met recursieve methodes... bijvoorbeeld, als je dan waarde[]={1,2} neemt. Het programma gaat kijken in regel 5 of er dan geldt: verdeelbaar(1,1,0) == true. Dus of het een goed idee is om het eerste artikel aan boef A te geven. Waar wordt berekend of dit een goed idee is of niet? Ik zie dat nergens in het programma terug.
Als ik dit vandaag nog ga bevatten, worden jullie bij deze gepromoveerd tot koningen![]()
| 1 2 3 4 5 6 7 8 9 10 11 | / \ /--- ---\ / \ (1,0) (0,1) / \ / \ / \ / \ (4,0) (1,3) (3,1) (0,4) / \ / \ / \ / \ (6,0)(4,2)(3,3)(1,5) (5,1)(3,3)(2,4)(0,6) ^^^ ^^^ |
Ja, ik snap emquote:Op woensdag 21 juni 2006 14:53 schreef Iblis het volgende:
[..]
Dat is de recursie, dat 'weet' het programma niet van te voren. Stel nu dat waarde[] ={1,3,2} Verdeelbaar(1,1,0) wordt eerst gedaan. D.w.z. item 1 is verdeeld, en boef A heeft nu een buit van 1 te pakken. Daarna wordt ook de aanroep verdeelbaar(2,4,0) gedaan (boef A krijgt ook item 2), en daarna nog eens verdeelbaar(3,6,0) (hij krijgt ook item 3). Nu zag jij waarschijnlijk al van te voren aankomen dat het geen slimme zet was om boef A ook item twee te geven, maar een computer beschouwt niet zo het totale plaatje, het kan alleen beslissen wat het met dit item hier en nu moet doen. Als uiteindelijk alles verdeeld is (i==3), dan kijkt het of buitA = buitB (wat niet het geval is) en dan geeft het dus 'false' terug. Het programma gaat nu weer een stapje terug in de recursie (het zegt eigenlijk: Okay, boef A, geef jij je laatste item maar terug, want dit werkte niet). En geeft het dan aan boef B. Dan is weer alles verdeeld, nu in een 4 vs. 2 verhouding, en dan kijkt het of dat netjes is, en dat is ook niet zo.
De functie heeft nu zowel een keer geprobeerd om item 2 aan boef A als B te geven en beide willen niet, het betekent dus dat het nog een stap terug moet doen. Zowel het tweede als het derde item worden als het ware teruggevorderd, en het proces herhaalt zich deels. Nu krijgt B item twee met waarde 3, dan komt er weer een recursieve aanroep, en dan wordt item 3 weer eerst aan boef A gegeven. Nu is weer alles verdeeld, en tadaa, ze hebben beide een buit met waarde 3. Dat komt goed uit, dus het programma geeft 'true' terug (ik heb een werkende verdeling gevonden!).
Het checkt dus pas zodra alles verdeeld is of dat een goed idee is (bij nader inzien), en zo niet, doet maakt het eerst z'n laatste move ongedaan en probeert daar een andere optie, tenzij die er niet meer is, dan moet het nog een move extra ongedaan maken.
Het wordt meestal als een boom getekend als je het grafisch wilt weergeven:
[ code verwijderd ]
Zelf vind ik dit tamelijk verhelderend. Het begint dus in de situatie dat beide dieven niets hebben (0,0), dan loopt je programma eerst helemaal naar beneden in de boom (verdeling 6,0), en het concludeert dat dat niet werkt, dus het gaat een stapje terug en neemt daar de andere tak, dat werkt ook niet, dus het moet twee stapjes terug om bij de afslag (1,0) nu de andere tak te nemen, daar kiest het weer eerst de linker (omdat het zo geprogrammeerd is), en daar is het correct, en dan breekt het ook direct af. Als er geen verdeling is, dan loopt het echter de gehele boom door en zal het overal beneden uitkomen voordat het kan concluderen dat het niet werkt.
Of iets een goede keus is blijkt dus uit het plaatje dat een bepaald punt in de boom een 'goede oplossing' onder zich heeft, maar dat ziet dat programma niet van te voren, daarvoor moet het uitgevoerd worden.
Nou, bij dezequote:Op woensdag 21 juni 2006 14:36 schreef Haushofer het volgende:
Als ik dit vandaag nog ga bevatten, worden jullie gepromoveerd tot koningen![]()
To iterate is human; to recurse, divine.quote:Op woensdag 21 juni 2006 15:05 schreef Haushofer het volgende:
Ja, ik snap emPrachtig zeg, een paar uur terug snapte ik er nog helemaal geen hol van. Mooi is dat. Dankjewel, en Thabit en Glowmouse ook natuurlijk ! Zo'n plaatje is inderdaad erg handig. Ik ben zelf altijd geneigd om problemen iteratief op te lossen ( die paar problemen die ik dan heb opgelost
), recursie vind ik op de een of andere manier een stuk lastiger.
Gegeven is al dat het product defect is, wat is nu de kans dat het met machine C is geproduceerd.quote:Op woensdag 21 juni 2006 15:11 schreef Kindervriend het volgende:
Okay, komt weer een n00b vraag van mij, wederom kansberekening.
Er zijn 3 machines. A, B en C.
A neemt 10% van de productie voor zijn rekening. B 30% en C 60%.
De kans op een defect product met machine A is 7%. Bij B is het 3% en bij C 1,5%.
Vraag: Wat is de kans dat een willekeurig defect product is geproduceerd met machine C?
Om hier nog even op terug te komen, het kan ook geheel met de rekenregels:quote:Op woensdag 21 juni 2006 13:19 schreef GlowMouse het volgende:
[..]
Omdat P(A)P(B) != P(A door B) weet je dat A en B afhankelijk zijn. Omdat P(A|B) en P(B|A) niet gegeven zijn, moet je goed kijken. Je moet dus goed kijken
Nu zie je dat P(A door B) en P(B) zijn gelijk. Probeer hier eens verder mee te komen. Als dit niet lukt, maak dan een venn-diagram![]()
| 1 |
if (...) en ... moet een boolean waarde zijn. In dit geval is het resultaat van de methode die op de plaats van ... staat een boolean waarde dus dat zit in dit geval goed. Dus hoewel je if (functie() == true) zou kunnen schrijven, is het niet nodig aangezien de returnwaarde al van het type boolean is.quote:Op woensdag 21 juni 2006 13:35 schreef Haushofer het volgende:
[..] De if(.....) is gewoon een afkorting voor if(....) = true, neem ik aan.
[..]
| 1 2 3 | return x == y; } |
Geweldig, ik begrijp het ineens! Heel erg bedank !quote:Op woensdag 21 juni 2006 21:09 schreef GlowMouse het volgende:
0,14g kalkaanslag komt overeen met ... mol CaCO3
Omdat er (zie reactievergelijking) per mol CaCO3 twee mol HCOOH reageert, is er totaal ... mol HCOOH nodig om alle CaCO3 te laten reageren.
Omdat er totaal 26,4 mmol HCOOH aanwezig was, is er na de reactie nog ... mmol HCOOH aanwezig.
Dit komt overeen met ... gram.
Ik heb helaas geen tabel om alle molmassa's uit te rekenen, maar dit is wel de aanpak.
Zoiets was ik ook van planquote:Op woensdag 21 juni 2006 20:54 schreef Wolfje het volgende:
Haushofer,
Ik zou ook nog iets als
[ code verwijderd ]
in je programmaatje zetten.
Hiermee voorkom je dat je computer heel veel onzinnig werk gaat doen. Als buitA (of buitB) immers al meer dan de helft is, zal het zeker niet minder worden, dus dan kan je gelijk stoppen. Ik ga er dan wel vanuit dat alle waarden niet negatief zijn. Een dergelijk trucje valt in de categorie branch & cut algoritme. Als ze wel negatief mogen zijn, kun je nog steeds wel een soortgelijke grens bepalen.
Hoe het precies zit met het verschil tussen static methodes en class methodes weet ik niet, maar het heeft volgens mij weinig te maken met de keuze om je variabelen static te maken.quote:Waarom moeten die functies van je eigenlijk static zijn? Volgens mij werkt het dan alleen als waardes ook een static variabele is en dat is een beetje vreemd.
Hij bedoelt waarschijnlijk dat de array met waardes ook static zal moeten zijn.quote:Op vrijdag 23 juni 2006 08:31 schreef Haushofer het volgende:
Hoe het precies zit met het verschil tussen static methodes en class methodes weet ik niet, maar het heeft volgens mij weinig te maken met de keuze om je variabelen static te maken.
| 1 2 3 | int huidigeversnelling; public void schakel(int versnelling) { huidigeversnelling = versnelling;}; |
Noem X de levensduur van de accu. Er geldt X~N(5,4). Spreek uit: N is normaal verdeeld met parameters 5 en 4. 5 is de verwachting, 4 de variantie.quote:Op vrijdag 23 juni 2006 10:08 schreef superhero87 het volgende:
Hoe moet ik dit berekenen in mn rekenmachine:
De levelnsduur van een autoaccu blijkt normaal verdeeld te zijn met een gemiddelde levensduur van 5 jaar en een standaarddeviatie van 2 jaar
a: Bereken de kans dat een accu binnen de garantietermijn kapot gaat
b: Bereken de kans dat een accu binnen 1 jaar na het verstrijken van de garantietermijn kapot gaat
c: De leverancier wil nu een garantietermijn vaststellen van a jaar. Deze a moet de eigenschap hebben dat de levensduur van 96% van de geleverde accu's minstens gelijk is aan a jaar. Bepaal a
Alvast heel erg bedankt!
Je hebt dit sneller met pen en papier en simpel rekenmachine uitgerekend, dan dat je moet uitzoeken hoe dit werkt met een grafisch rekenmachine.quote:Op vrijdag 23 juni 2006 10:08 schreef superhero87 het volgende:
Heb weer Statistiek voor het eerst in 3 jaar...
En ben natuurlijk vergeten hoe ik allemaal dingetjes moet berekenen met mn grafische rekenmachine...
Hoe moet ik dit berekenen in mn rekenmachine:
De levelnsduur van een autoaccu blijkt normaal verdeeld te zijn met een gemiddelde levensduur van 5 jaar en een standaarddeviatie van 2 jaar
a: Bereken de kans dat een accu binnen de garantietermijn kapot gaat
b: Bereken de kans dat een accu binnen 1 jaar na het verstrijken van de garantietermijn kapot gaat
c: De leverancier wil nu een garantietermijn vaststellen van a jaar. Deze a moet de eigenschap hebben dat de levensduur van 96% van de geleverde accu's minstens gelijk is aan a jaar. Bepaal a
Alvast heel erg bedankt!
Helaas is de cumulatieve verdelingsfunctie van de standaardnormale verdeling niet zo eenvoudig gedefinieerd. Zonder tabel of GR is het onmogelijk tot een oplossing te komen, tenzij het om een bekende bovengrens gaat, zoals 0 of 1,645.quote:Je moet dan wel eerst de verdeling standaardiseren, dan kun je deze problemen simpel oplossen met de cumulatieve verdelingsfunctie van de standaard normaal verdeling.
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |