Zagadka Liczb Pierwszych

ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 16 godzin
0
Progdeex napisał(a):

Chodzi Ci o to ,by taką liczbę sprawdzić znając tylko podstawę oraz jej potęgę?

Nie. 232 - 3 to konkretna liczba. Skoro nie rozumiesz takiego zapisu, to może inaczej. Znajdź mi wszystkie liczby o "wysokim p-wie bycia pierwszą" z przedziału od 4294967193 do 4294967293, przy czym wysokie to dla mnie >> 1/2 (czytaj: znacznie więcej niż 50%). Zrób to bez dzielenia przez 5 (sprawdzenie ostatniego znaku liczby przekonwertowanej do stringa to wielokrotne dzielenie przez 10 a więc i przez 5, z racji wydajności kompletnie odpada).


edytowany 1x, ostatnio: ŁF
pingwindyktator
  • Rejestracja:ponad 12 lat
  • Ostatnio:25 dni
  • Lokalizacja:Kraków
  • Postów:1055
0

@pioflor można stworzyć deterministyczny algorytm oparty na Miller-Rabin, jednak on wymaga prawdziwości tejże hipotezy.


do not code, write prose
PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

Rozumiem,że 2 do potęgi 32 minus 3 to właściwa liczba. Jeśli się temu zapisowi przyjrzeć bliżej to liczba ta będzie zakończona cyfrą 8 minus 3 =5 Tak liczba podzieli się przez 5. Nie wiem czy dobrze piszę. Mogłem się bardzo pomylić, ponieważ liczyłem swoją metodą na kartce papieru.

Co do tych wysokich P więcej jak 50% to według tego co sam programowałem prawdopodobieństwo wskazania liczby maleje wraz jej wielkością. Mogę podać tylko ogólny zbiór z tego przedziału. Takimi prawdopodobieństwami się jeszcze nie zajmowałem.

EDIT

Jednak nie.. Jeszcze raz policzyłem. Wyszło mi ,że liczba zakończy się liczbą 3..hmn

edytowany 2x, ostatnio: Progdeex
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Ale ty rozumiesz że 50% to ma algorytm rand()%2? Jak będę losowo odpowiadał czy liczba jest pierwsza czy nie to uzyskam srednio 50% trafień? Jak twój algorytm działa gorzej to szkoda gadać :P


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
ŁF
To tak nie działa. Dla bardzo dużych liczb prawdopodobieństwo wylosowania liczby pierwszej jest bardzo bliskie zeru, a dla bardzo małych bliskie 100%.
ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 16 godzin
0

Człowieku, 32 razy mnożyłeś przez dwa i jeszcze się kopnąłeś (pewnie o jedno mnożenie za mało). Użyj kalkulatora, wyjdzie Ci 4294967296. Od tego odejmij trzy, możesz w pamięci.

A teraz z innej bajki: skąd wiesz, że kończy się na pięć? Używając systemu dziesiętnego jest to banalne, ale i tak się kopnąłeś. Użyj, tak jak komputer, zapisu binarnego i nie dzieląc przez 5 dowiedź, że liczba jest przez pięć podzielna :]

Co do drugiej części Twojej wypowiedzi - zatem zróbmy tak, żeby po odsianiu Twoim algorytmem prawdopodobieństwo znalezienia liczb pierwszych w zbiorze było tylko 4x wyższe od p-wa znalezienia liczb pierwszych w zbiorze nieprzefiltrowanym. Przedział nadal ten sam, od 4294967193 do 4294967293, założenie nadal to samo - nie dzielisz przez 5 (generalnie nie powinieneś przeprowadzać żadnych operacji, które robi sito Eratostenesa, bo tylko będą się dublować). Jedziesz.


edytowany 1x, ostatnio: ŁF
PR
Tylko nawet jak sobie to uproszczę do 4bitów 16liczb to np. liczba binarna 1001 vs 1010.. heh teraz odróżnij ,która z nich ma 5 na końcu.. jak czytam to wiem ,że żadna.. po co mi tak odróżniać liczby?
ŁF
To nie Ty odróżniać to masz, przecież algorytm implementujesz w KOMPUTERZE. Ręce opadają.
PR
Czyli mam zamienić liczby na postać binarna i próbować algorytmem jakoś to sprawdzać. . Tylko po co?
PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0
ŁF napisał(a):

Człowieku, 32 razy mnożyłeś przez dwa i jeszcze się kopnąłeś (pewnie o jedno mnożenie za mało). Użyj kalkulatora, wyjdzie Ci 4294967296. Od tego odejmij trzy, możesz w pamięci..

Nie mnożyłem. Za długo by to trwało. Samo liczenie na kartce trwa może z 20s. Poprawiłem post. Wyszło,że po odjęciu liczba zakończy się na 3, więc przez 5 się nie podzieli.

Co do drugiej części. Mam Ci wypisać wszystkie liczby z tego przedziału,które nie dzielą się przez 5 bez sprawdzania(dzielenia ich przez5)?

edytowany 1x, ostatnio: Progdeex
pingwindyktator
  • Rejestracja:ponad 12 lat
  • Ostatnio:25 dni
  • Lokalizacja:Kraków
  • Postów:1055
0

@Progdeex, do czego dążysz? Bo straszne herezje zaczynają się tutaj pojawiać.


do not code, write prose
Zobacz pozostałe 6 komentarzy
PR
Nic nie stoi na przeszkodzie do wygenerowania liczby z 50,000,000 cyfr.. sztuką jest ją sprawdzić. Taka liczba musi kończyć się cyfrą 1,3,7,9 i odpowiednią sumą wszystkich swoich cyfr .by był sens ją sprawdzać
pingwindyktator
NIE SPRAWDZISZ czy taka liczba jest pierwsza. NIE ZROBISZ tego i już. I pewnie nie dożyjesz czasów w których będzie to możliwe. EOT.
PR
A może szczęście dopisze i wygenerowana liczba będzie liczbą pierwszą ,którą dopiero sprawdzą komputery za 30 lat? Zawsze jest jakaś szansa na dobre trafienie :D
vpiotr
żeby nie wpadać w paranoję: GIMPS to "tylko" kilkaset tysięcy CPU, a weryfikacja jednej liczby na jednym komputerze to parę dni: http://www.mersenne.org/primes/?press=M57885161
pingwindyktator
@vpiotr prawda, ale zweryfikować trzeba ogromną ilość takich liczb
ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 16 godzin
1

Szybko dodajesz ;-)

Wolałbym, żeby niezbędne obliczenia zrobił Twój algorytm, ale jeśli będziesz postępować jego krokami, to czemu nie, możesz podać te liczby + to jak algorytm by doszedł do ich zostawienia albo odsiania. Tylko pamiętaj, komputer działa w systemie binarnym, Ty widzisz że liczba kończy się zerem lub piątką, komputer zamiast 4294967295 trzyma 11111111111111111111111111111111b, tudzież 0xffffffff.


PR
Ja nic nie dodawałem. Wykonałem 2 dzielenia i wyszła liczba 6 -3. Muszę poszukać na innych forach czy jeszcze ktoś liczy tak szybko :D
PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

Po raz pierwszy musiałem policzyć tak duże liczby. Może to zaledwie 10 cyfr ale algorytmowi to widocznie nie przeszkadza.
Liczby te nie są podzielne przez 5 i część z nich to pewnie liczby pierwsze. Takie wyniki wypluł algorytm po czasie równym prawie 0:

4294967197
4294967201
4294967203
4294967207
4294967209
4294967213
4294967219
4294967221
4294967227
4294967231
4294967233
4294967237
4294967239
4294967243
4294967249
4294967251
4294967257
4294967261
4294967263
4294967267
4294967269
4294967273
4294967279
4294967281
4294967287
4294967291
4294967293

O to chodziło?

edytowany 2x, ostatnio: Progdeex
ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 16 godzin
2

Ale wytłumacz, jak doszedłeś do takich wyników nie dzieląc przez pięć, przecież to o to chodziło. To nie jest "zaledwie 10 cyfr"!!! To 32 cyfry w systemie binarnym!!! Człowieku, przecież nie będziesz tego na kartce liczyć, tylko będzie to realizować komputer. A on kuźwa liczy BINARNIE. Więc skąd wiesz, że 11111111111111111111111110101111b kończy się, albo się nie kończy cyfrą pięć bez dzielenia przez pięć. Bo wypisać jakieś liczby jedna po drugiej i to znacznie większe niż te to ja sam umiem.
Poza tym odsiałeś 60% liczb (z każdej dziesiątki wszystkie parzyste i jedną piątkę), żeby p-wo znalezienia liczby pierwszej w takim zbiorze wzrosło czterokrotnie, to musiałbyś odsiać 75% liczb. Mniejsza z tym. Cały czas usiłujemy Ci udowodnić, że żeby odsiać te liczby to i tak musisz wykonać operacje, które były by użyte w najpospolitszej wersji sita Eratostenesa, ale to jak grochem o ścianę. Sugerowałem, żebyś swoje pomysły zweryfikował robiąc implementację kilku algorytmów i porównując ich wydajność ze swoim pomysłem, a na koniec żebyś wyciągnął wnioski samodzielnie, ale zignorowałeś to. Prosiłem o "podanie tych liczby + to jak algorytm by doszedł do ich zostawienia albo odsiania", drugą część zdania zignorowałeś.
Wniosek sam się nasuwa.


edytowany 1x, ostatnio: ŁF
Zobacz pozostały 1 komentarz
ŁF
Dzielenie przez dziesięć jest jednocześnie dzieleniem przez 2 i... 5. Pisałem wcześniej "Zrób to bez dzielenia przez 5 (sprawdzenie ostatniego znaku liczby przekonwertowanej do stringa to wielokrotne dzielenie przez 10 a więc i przez 5, z racji wydajności kompletnie odpada)", ale z racji ilości postów w tym wątku mogłeś to przegapić.
_13th_Dragon
Dopisałem dwa znaczki - sądzisz że ktoś ma wątpliwości że dzielenie przez 5 czy przez 10 to jest to samo w sensie czasu? ... aczkolwiek ... fakt że meduza przeżyła 600 mln lat nie posiadając mózgu daje nadzieje milionom ludzi :)
PR
Tak dla zrozumienia: Powyższe liczby nie powstały przez żadne odsiewanie ani dzielenie. Algotytm to tylko jedna pętla która wupisuje liczby z przedziału. Sama liczba powstaje przez wzór który podzielony jest na dwie części i zajmuje 2 linijki kodu.
_13th_Dragon
@ŁF, napisałem w komentarzu półżartem-półserio, że sprawdzić czy liczba jest podzielna przez 5 można nie tylko dzieląc przez 5 ale również dzieląc przez 10 (ponieważ parzyste już ostawiono). Półserio dlatego, że to jest fakt matematyczny, zaś półżartem dlatego że to niczego nie zmienia w twoim powyższym wywodzie. Na koniec wspomnianego komentarzu dodałem dwa znaczki: - ";P" - które powinny ( przynajmniej dla niektórych) zasugerować że ta wypowiedź nie do końca na serio.
PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

To jest trochę inaczej. Z pewnych dziesiątek zostaje tylko 4 liczby czyli 60 % odpadło. Z innej dziesiątki zostają tylko 2 liczby czyli 80 % odpada. Z całej setki odpadło około 70% liczb.

fasadin
a potrafisz czytac? Przeciez prosza Cie o podanie jak to robisz. Napisz kod i wrzuc jak to sprawdzasz.
PR
A czy jest sens wrzucać rozwiązanie które jest woolne :) Dla ciekawskich mogę wrzucić jako ciekawostkę.
fasadin
no to wrzuc
PR
Tylko ja to o piszę na liczbach dziesietnych, bo nie wiem po co mam coś wykonywać na binarnych.
fasadin
dobrze rob na czym chcesz ale pokaz program
Sopelek
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Kraków
  • Postów:467
0

Pomijając, że słaby troll

generuje kolejne liczby naturalne pomijając te podzielne przez 2,3,5. Bez korzystania z dzielenia.

Kopiuj
int a[8] = {6, 4, 2, 4, 2, 4, 6, 2};
for(int v = 1, i = 0;; v += a[i++ & 0x7])
    std::cout << v << '\n';

tysięczna wypisana liczba to 3749

edytowany 5x, ostatnio: Sopelek
Zobacz pozostały 1 komentarz
Sopelek
To po co prosicie o takie rzeczy w tym temacie?
pingwindyktator
Autor tematu nie wiedział jak to zrobić. Jak wyobrażasz sobie generowanie liczb pierwszych korzystając z tego algorytmu generowania liczb?
PR
Skąd pewność,że to liczby niepodzielne przez 3. Kiedyś generowałem liczby rzędu 400 tys cyfr przy swojej metodzie i dzieliły się przez 3. Twoja pętla jest ok ,bo odzwierciedla sposób generowania właśnie tych liczb co opisuje. U mnie 1000 liczba to 3757 ,bo zaczynam od liczby 11. W twoim rozwiązaniu jest problem,bo żeby policzyć konkretną liczbę np. 10 000 pętla musi się właśnie o tyle obrócić. Ja używam wzoru, więc pętli nie potrzebuje,bo rozwiązanie mam natychmiast.
Sopelek
"Jak wyobrażasz sobie generowanie liczb pierwszych korzystając z tego algorytmu generowania liczb?" Nie wyobrażam, napisałem to o co prosiliście w swoich postach.
pingwindyktator
Okej. Stąd mówie, że to kompletnie bez sensu.
0

Liczby pierwsze:
(n*n) - 79n + 1601
dla n od 0 do 79.

PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

Kiedyś myślałem,że przy szukaniu liczby pierwszej należy posługiwać się wszystkimi liczbami nieparzystymi oprócz tych,które kończą się na 5.
Trochę pokombinowałem i nastała wreszcie nadzieja. Można omijać liczby nieparzyste tylko w określonych miejscach. Miejsca te wyznaczają liczby,których suma wszystkich cyfr nie jest równa 3|6|9. np. liczba 12 591 suma cyfr to:18 1+8=9 Ta liczba nie jest liczbą pierwszą. Takie liczenie sumy cyfr istnieje w numerologi i tutaj właśnie takie coś zastosowałem.

Prawie taką samą regułę zastosowałem do sprawdzenia jaką ostatnią cyfrę będzie mieć liczba np. 2^126753 -5 czyli (ostatnia 8-5=3) nie wiem jaki wzór istnieje w matematyce na policzenie tego, ale ja to robię właśnie inaczej i pewnie łatwiej :) Przypadkowo jeszcze odkryłem jaką sumę cyfr będzie mieć ta liczba. (2-5=7) To sugeruje,że ta liczba może być liczbą pierwszą.

Do obliczenia dowolnej liczby nieparzystej,która może być liczbą pierwszą stosuję takie wzory:

n - taki wyznacznik dla pewnego zbioru liczb (zb)
zb - zbiór ośmiu liczb pierwszych [11,13,17,19,23,29,31,37] n = od 1 do 8 i wyznacza,którą liczbę pobrać ze zbioru zb
dla n=1 zb=11 dla n=5 zb=23

Najpierw oblicza się n:
n=l-(8*[l/8]) dla n=0->n=8

Potem Liczbę Nieparzystą:
l2=((l-n)/8)*30+zb(n) l-dowolna liczba np. dla l=1000--> l2=3757
Uproszczenie: l2=[l/8]*30+zb(n) dla l=1 l2=11 dla l=2 l2=13 itd.

Kwadratowe nawiasy oznaczają,że dzielimy bez reszty.

Takie rozwiązanie oznacza,że nie trzeba deklarować sporego miejsca na tablicę jak to ma miejsce w sicie,bo jest ona dostępna od razu, a wielkie nieparzyste liczby generować można prawie natychmiast bez konieczności użycia pętli.

W wolnych chwilach ciągle przy tym dłubię i może kiedyś coś jeszcze wymyślę.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
2

@Progdeex, wreszcie odkryłeś zasadę podzielności przez 3, z tym że aby sprawdzić tą podzielność przez 3 musisz co najmniej floor(log10(N)) razy podzielić przez 10 (np dla liczby 12 591 - 4 razy po czym 4 dodawania, znowu dzielenie i znowu dodawanie, po czym dwa ifa), co na 300% procent jest dłuższym działaniem niż zwykła pojedyncza reszta z dzielenia przez 3.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Zobacz pozostałe 10 komentarzy
PR
Generowałem 8 cyfrowe liczby i je sklejałem, więc powinno być ok. Problemem jest potem dzielenie takich liczb, bo kończą się rejestry.
vpiotr
rand() jest dobre w do wylosowania 1 z 100 liczb. Gdy potrzeba duzych zakresow liczb losowych to zaczynaja wychodzic braki tego generatora.. M.in. nie ma on oczekiwanych wlasciwosci statystycznych. Lepiej uzyc generatora z Boost / C++11. Nie wiem czy sklejanie wystarczy, byc moze MD5 ze sklejonych liczb byloby OK (wynik to 128 bitowa liczba). Aktualny generator standardowy dla C++: http://www.cplusplus.com/reference/random/
PR
W wolnych chwilach poczytam/spróbuje zastosować. Teraz jeszcze jest problem z tym dzieleniem. Dla dzielnika,którego nie da się zapisać w zmiennej, a jedynie na dysku, trzeba coś wymyślić -- albo zostanie tylko dzielenie binarne :(
_13th_Dragon
Weź dowolną bibliotekę BigInt i używaj sobie, z twoim poziomem to jeszcze przez długi czas sam tego nie rozwiążesz.
PR
Akurat do rozwiązywania takich łamigłówek jestem zawsze pierwszy i zwykle prędzej czy później powstaje odpowiedni algorytm zdolny do rozwiązania problemu. Do tego dzielenia będę musiał się trochę przyłożyć i dam radę.
pingwindyktator
  • Rejestracja:ponad 12 lat
  • Ostatnio:25 dni
  • Lokalizacja:Kraków
  • Postów:1055
1

To są jakieś brednie.


do not code, write prose
PR
Dokładnie gdzie one są?
JP
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:8
1

Takie liczenie sumy cyfr istnieje w numerologi i tutaj właśnie takie coś zastosowałem.

Terminologia mówi sama za siebie:
https://pl.wikipedia.org/wiki/Numerologia

edytowany 1x, ostatnio: janusz_programowania
PR
Bez przesady :D Chodzi tylko o sumę cyfr liczby zredukowaną do jednej liczby.
PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

Wzory działają dobrze dla liczb, które mieszczą się jeszcze w rejestrach :D

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)