Έχουν δημοσιευτεί
Σάββατο, 2 Φεβρουαρίου 2008 1:30 μμ
από το μέλος
PALLADIN
Το Project Euler, είναι ένα πολύ ενδιαφέρον site για τους φίλους των μαθηματικών, που όμως διαθέτουν μια κλίση προς το coding.
Όπως διαβάζω στο site "Project Euler exists το encourage, challenge, and develop the skills and enjoyment of anyone with an interest in the fascinating world of mathematics."
Τα προβλήματα ποικίλλουν σε δυσκολία, κάποια είναι brute force oriented, ενώ άλλα χρειάζονται την μαθηματική κομψότητα για να μειώσουν το search space. Τα πιο εύκολα είναι τα κλασικά brute force (είναι η αδυναμία μου...elegant brute force προγράμματα)
Ένα κλασικό παράδειγμα είναι να βρούμε Πυθαγόρειες τριάδες
Σε Haskell
[ (a, b, c) | a <- [ 1 .. n ], b <- [ a + 1 .. n ], c <- [ b + 1 .. n ], (a * a) + (b * b) == (c * c) ]
και για τους φίλους της C#
var triples = from a in Enumerable.Range(1, n)
from b in Enumerable.Range(a + 1, n)
from c in Enumerable.Range(b + 1, n)
where (a * a) + (b * b) == c * c
select new { a, b, c };
Παρατηρώντας τις δυο υλοποιήσεις, συνειδητοποιώ την εντυπωσιακή ομοιότητα... πως φαίνεται ότι ο άνθρωπος που σχεδίασε τα LINQ comprehensions έχει Haskell background... Δείξε μου τον κώδικά σου, να σου πω ποιός είσαι