Programmeren in Ruby/Rekenproblemen: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
AventicumRobot (overleg | bijdragen)
k Robot: automatisch tekst vervangen (-{{GFDL-oud}} + )
DimiC88 (overleg | bijdragen)
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.
 
<sourcesyntaxhighlight lang="ruby">
def priemgetal? (getal)
priem = true
Regel 18:
return priem
end
</syntaxhighlight>
</source>
 
Ook andere rekenkundige manieren kunnen rijen priemgetallen opleveren. Dit kan als volgt worden geprogrammeerd:
 
<sourcesyntaxhighlight lang="ruby">
totgetal = 50
priemgetallen = []
Regel 28:
priemgetallen << getal if priemgetal?(getal) == true
end
</syntaxhighlight>
</source>
 
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:
 
<sourcesyntaxhighlight lang="ruby">
def euclides_algoritme(getal1,getal2)
if getal1 == getal2
Regel 91:
return [c,a,b]
end
</syntaxhighlight>
</source>
 
Dit kunnen we gebruiken door dit te doen:
 
<sourcesyntaxhighlight lang="ruby">
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>
</source>
 
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.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.