Lazımi ardıcıllığı konstruktiv şəkildə quracağıq. Təkrarlanan bir funksiya olan sinusun dövriyyəsi olduğu üçün, onu sin(k(2π + ɛ)) şəklində axtaracağıq, burada k = 0, 1, 2, .... Təbii bir ədəd tapacağıq ki, orada bir tam mövcud olsun və A = 2πk + ɛ mümkün olan ən kiçik dəyərində olsun. Məsələn, dəyərlərini -dən -ə qədər yoxlasanız, A = 710 olduqda ən kiçik əldə edilmiş olar. Bu halda 710 ≈ 2π \cdot 113 + 0.00006028.
Qoyun A = 710. Aşağıdakı ardıcıllığı nəzərdən keçirək
Bu ardıcıllığın elementlərinin dəyərləri
və ya dövriyyəni nəzərə alaraq bu dəyərlər bərabərdir
funksiyası x ∈ [0; π/2] aralığında artandır. Yuxarıdakı real ədədlərin ardıcıllığının monoton artan olmasını təmin etmək üçün kifayət edir ki: n \cdot ɛ ≤ \pi / 2. n = 10000 və ɛ = 0.00006028 qoyduqda əldə edəcəyik: 10000 \cdot 0.00006028 \le \pi / 2 və ya 0.6028 \le 1.57, bu doğrudur. Beləliklə, bu metodla lazım olan 10^4 təbii ədəd tapıla bilər.
Alqoritmin həyata keçirilməsi
Giriş dəyəri -i oxuyuruq.
scanf("%d", &n);aralığında belə bir təbii ədəd tapırıq ki, A = 2πk + ɛ olduğu halda dəyəri ən kiçik olsun.
bestA = 0;
bestE = 2 * PI;
for (a = 1; a < 1000; a++)
{
e = fmod(a, 2.0 * PI);
if (e < bestE)
{
bestE = e;
bestA = a;
}
}x = bestA dəyəri olacaq.
x = bestA;Lazımi ardıcıllığı çıxarırıq: 0 \cdot 710, 1 \cdot 710, 2 \cdot 710, ..., (n - 1) \cdot 710.
for (i = 0; i < n; i++)
printf("%d ", x * i);
printf("\n");