Skocz do zawartości
Forum Kopalni Wiedzy

nk_1

Nowi użytkownicy
  • Liczba zawartości

    3
  • Rejestracja

  • Ostatnia wizyta

Reputacja

0 Neutralna

O nk_1

  • Tytuł
    Fuks
  1. Porównaj odstępy (naprzemiennie a i b) dla danej iteracji.
  2. Załóżmy,że analizę liczb robimy do x=25. Napiszę w skrócie: 1. Iteracja dla y=1 b=7 ia=3 Wyznaczone liczby dla y=1: 8,11,18,21,28 2. Iteracji y=2 b=9 i a=5 Wyznaczone liczby dla y=2: 16,25,30 3. Iteracja y=3 b=15 i a=7 Kończymy bo 25 jest liczbą do której analizujemy. Zatem liczby wyznaczone przez algorytm Sito Małgorzaty w przedziale (1,25) są następujące: 8,11,16,18,21,25 W algorytmie na początku należy określić maksymalną wartość x, dla której przeprowadzamy obliczenia.
  3. Jest jeszcze inny sposób analizy liczb pierwszych pokazany poniżej. Pozwala na większy zakres analizy liczb pierwszych np. w Excelu. Algorytm pokazuje, że liczby złożone nie są rozmieszczone przypadkowo lecz są w określonych od siebie odstępach. Sito Małgorzaty opisane jest pod linkiem: https://1drv.ms/b/s!AsqwpKK-51whhhzzvgOxdib8Y_rW Poniżej przykładowe makro w Excelu: Sub sito() Dim j, i As Long Dim a, b As Long Dim t As Boolean Dim f As Boolean Dim x_max As Long Dim x As Long Dim yp As Long Dim pk As Integer Dim pky As Integer Dim pk_max As Integer Dim pk_min As Integer Range("B:Z").ClearContents ‘ilosc danych w kadej kolumnie np. 1040000 x_max = Range("A1").Text ‘ilosc kolumn – wartosc max 25 pk_max = Range("A2").Text ‘ zaczynamy od 2 kolumny pk = 2 pky = 2 pk_min = 2 pk_max = pk_max + 1 t = True ‘ wartosc pocztkowa dla iteracji yp = 1 i = 0 Do i = i + 1 ‘ wartosc pocztkowa x dla danej iteracji i x = yp ‘ wyliczenie wartosci a i b a = 1 + 2 * i If t Then b = 4 * i + 3 Else b = 4 * i + 1 End If ‘ ustawienie kolejnoci a czy b – t dla iteracji i , f dla poditeracji f = t If Cells(i, pk).Value <> 1 Then If f Then x = x + b yp = x + a Else x = x + a yp = x + b End If ‘zaznaczenie elementla danej iteracji For j = pk_min To pk_max Do While x < x_max Cells(x, j) = 1 If f Then x = x + a Else x = x + b End If f = Not (f) Loop x = x – x_max + 1 Next j Else yp = yp + a + b End If If Not (yp < x_max) Then yp = yp – x_max + 1 pky = pky + 1 End If pk_min = pky t = Not (t) Loop Until (pky > pk_max) End Sub
×
×
  • Dodaj nową pozycję...