Programmeren in Ruby/Rekenproblemen: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
k Robot: automatisch tekst vervangen (-{{GFDL-oud}} + ) |
kGeen bewerkingssamenvatting |
||
Regel 8:
Hieronder volgt een methode die controleert of een integer, een heel getal, ook een priemgetal is. Het kijkt gewoonweg of het niet deelbaar is door alle voorgaande getallen. Deze zeef laat dan alleen de priemen door.
<
def priemgetal? (getal)
priem = true
Regel 18:
return priem
end
</syntaxhighlight>
Ook andere rekenkundige manieren kunnen rijen priemgetallen opleveren. Dit kan als volgt worden geprogrammeerd:
<
totgetal = 50
priemgetallen = []
Regel 28:
priemgetallen << getal if priemgetal?(getal) == true
end
</syntaxhighlight>
Dit gaat echter nogal sloom, want er komen lange rijen te voorschijn, terwijl er op een gegeven moment heel veel ruimte tussen de priemgetallen zit, want ze komen steeds verder uit elkaar te staan. Gelukkig zijn er ook andere rekenmethoden, zoals bijv. de bekende [http://nl.wikipedia.org/wiki/Zeef_van_Eratosthenes] zeef van Eratosthenes.
Regel 72:
Dit is wel vrij makkelijk met de computer te doen, hetgeen als volgt is te programmeren:
<
def euclides_algoritme(getal1,getal2)
if getal1 == getal2
Regel 91:
return [c,a,b]
end
</syntaxhighlight>
Dit kunnen we gebruiken door dit te doen:
<
loop do
puts "getal 1 is:"
Regel 115:
puts "\n" + getal2.to_s + " -- berekent in " + (Time.new-starttijd).to_s + " seconden en het algoritme moest " + loops.to_s + " keer uitgevoerd worden.\n\n\n"
end
</syntaxhighlight>
Dit programmaatje laat de tijd zien die de computer nodig had en tevens het aantal keren dat het algoritme herhaald moest worden. Op onze computer werd het in ongeveer 20 minuten afgehandeld.
|