Alıntı (CWSuskun):
> Project Euler / Soru 3
Çok iyi olur. :)
Alıntı:
> Abi ben daha araliklara gelmedim.
Ben göz alışkanlığı olsun diye öyle de çözüyorum. (Aralıklar aslında gerçekten de kolay bir konu.)
Alıntı:
> ben std.algorithm
kullanmadan yaziyorum
std.algorithm faydalari nelerdir?
benim yazdigim kod ile karsilastirirsak.
std.algorithm gibi modüller genel çözümler sunarlar. Örneğin kendi yazdığımız kod çok özel olarak örneğin "10'dan 20'ye kadar olan sayıların çift olanlarının toplamı" olabilir.
Ama o tanımın içinde üç tane genel kavram var:
Çoğu problem benzer şekilde genel algoritmalar olarak görülebilir. O zaman bizim kod yazmamıza fazla gerek kalmaz. Algoritmaları Lego parçaları gibi birbirlerine takarız. Takma düzeneğini de aralıklar sağlarlar.
Parçaları ayrı ayrı isimlerle yazınca daha anlaşılır oluyor:
import std.stdio;
import std.algorithm;
import std.range;
void main()
{
auto hepsi = iota(10, 21);
auto süzülmüşleri = filter!"!(a % 2)"(hepsi);
auto toplamları = reduce!"a + b"(0, süzülmüşleri);
writeln("hepsi : ", hepsi);
writeln("süzülmüş olanları: ", süzülmüşleri);
writeln("toplamları : ", toplamları);
}
Çıktısı:
'hepsi : [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
süzülmüş olanları: [10, 12, 14, 16, 18, 20]
toplamları : 90
'
Kütüphane algoritmalarının büyük bir yararı, uzmanlar tarafından yazılmış olmaları ve çok sayıda programcı tarafından kullanıldıkları için hataları bulunmuş ve giderilmiş olmalarıdır.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]