Vopšem es te mazliet paizklaidējos. Matemātiski!
Papētīju mazliet nepāra skaitīšanas sistēmas (tās ir tādas, kuru bāze ir 2n+1) skaitļu paritāti.
Definēsim funkciju par(a), kas ciparu gadījumā (skaitļu mazāku par bāzi) pieņem vērtību a mod 2 (0 vai 1 atkarībā no a). Tagad izpētīsim funkciju par(), skaitļiem, kas lielāki par bāzi. Ir zināms, ka bāze ir nepāra skaitlis tātad 102n+1 ir nepāra skaitlis, taču zinām arī ka normālā skaitīšanas sistēmā jebkuru skaitli reizinot ar 2 iegūstam pāra skaitli, tādēļ 202n+1 būs pāra skaitlis.
Šeit varam vērot kautkādu sakarību. Formalizēsim to: Ja a = amam-1…a1a0, kur ai ir skaitļa cipars pozīcijā i, kura vērtība ir a(2n+1)i, ir skaitlis skaitīšanas sistēmā 2n+1, tad tā paritāti par(a) varam noteikt šādi: par(a) = par(a0)+par(a1)+…+par(am-1)+par(am) = Sum(par(ai)) = XOR(par(ai)) (šeit XOR nozīmē loģiskās operācijas XOR izpildi ar visiem saskaitāmajiem).
Ja skaitlis mums ir redzams (t.i. ja mēs ātri varam noteikt skaitļa ciparus) tad mēs varam optimizēt šo procedūru ņemot vērā sekojošus apstākļus: ja skaitlī kāds cipars ir pārskaitlis, tad no tā paritāte nemainās. Divu nepārskaitļu summa ir pārskaitlis. Ņemot vērā šīs tēzes, varam teikt, par(a)=par(count_nep_cip(a)), kur count_nep_cip(a) saskaita cik ir nepāra ciparu skaitlī a
Dies tētiņ, man laikam tiešām nav ko darīt..