Μία τέτοια ακολουθία δημιουργείται με εύκολο τρόπο βασιζόμενη στην ακολουθία των φυσικών αριθμών. Αρκεί να παρατηρήσουμε ότι στο εύρος 0 ως Ν κινούνται και τα υπόλοιπα της διαίρεσης ενός αριθμού με το Ν+1. Αυτό δεν είναι ένα αυθαίρετο κόλπο. Βασίζεται σε έναν ολόκληρο κλάδο των μαθηματικών την αριθμητική υπολοίπων.
Άρα μπορούμε να έχουμε έναν κώδικα όπως ο ακόλουθος:
int N = 4; for (int i=0; i<1000000; i++) { // Μια συνεχόμενη ακολουθία αριθμών int c = i % (N+1); // και αυτή η μεταβλητή είναι πάντα από 0 έως Ν. // Όταν το i είναι πολλαπλάσιο του Ν+1, τότε το // υπόλοιπο μηδενίζεται και ξεκινά η ακολουθία ξανά // εδώ μπαίνει ο κώδικας }
Δείτε ως παράδειγμα πως προκύπτουν οι τιμές των i
και c
αν το Ν
είναι 4, άρα το Ν+1
θα είναι 5.
i : 0 1 2 3 4 5 6 7 8 9 10 11 12 . . . c : 0 1 2 3 4 0 1 2 3 4 0 1 2 . . .
Για τις πιο σπάνιες περιπτώσεις που ο κώδικας μέσα στο for
δεν χρησιμοποιεί την μεταβλητή i
καθόλου και υπάρχει κάποια άλλη συνθήκη τερματισμού (που δεν μπορεί να αφορά το c
), τότε το παραπάνω παράδειγμα μπορεί να γραφεί ως:
int N = 4; for (int c=0; /* κάποια άλλη συνθήκη τερματισμού */ ; c = (c+1)%(N+1) ) { // εδώ μπαίνει ο κώδικας }
ή απλούστερα:
int N = 4; for (int i=0, c=0; i<1000000; i++, c++;) { if (c == N+1) { c = 0; } // εδώ μπαίνει ο κώδικας }