Reklama
Pokazuje wyniki od 1 do 6 z 6

Temat: [algorytm] koło liczb

  1. #1
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    32
    Posty
    1,710
    Siła reputacji
    14

    Domyślny [algorytm] koło liczb

    Siema, znacie może jakiś algorytm na takie zagadnienie:

    mamy liczby: 0 1 2 3 4 5

    i sobie wyobraźmy, że tworzą one koło. Chcemy poznać wartości bocznych partnerów dla konkretnej cyfry czyli:
    np
    1 to 0 i 2
    2 to 1 i 3

    szkopuł w tym, że nie wiem zrobić dla 0 i dla 5?
    0 to 5 i 1
    5 to 4 i 0

    wiem, że można się pobawić w ify dla 0 i 5 ale chcę coś bardziej uniwersalnego (coś mi się kojarzy z instrukcja modulo)
    Jest coś takiego?

    pomocy ;/

  2. #2
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    34
    Posty
    11,076
    Siła reputacji
    25

    Domyślny

    Sprawdź, co daje modulo z -1
    Mój pomysł to (x-1)%n i (x+1)%n gdzie x to ana liczba, n to liczba maksymalna, teraz nie rozkminię lepiej
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

  3. #3

    Data rejestracji
    2010
    Położenie
    Aͦͯ͐̾͐ͦ̋̽́̎̀͗̌͡͏̸&#7
    Posty
    2,138
    Siła reputacji
    17

    Domyślny

    nie wiem, czy dobrze zrozumiałem, chodzi o coś w tym stylu?
    Kod :
    int a, b, c;
    cin >> a >> b; //w twoim przykładzie a = 0, b = 5
    cin >> c; //jej sąsiadów chcesz znać
    if(c == 0) cout<<"1, "<<b<<endl;
       else if(c == b) cout<<"0, "<<c - 1<<endl;
          else cout<<c - 1<<", "<<c + 1<<endl;
    druga opcja to lista dwukierunkowa, wtedy znajdujesz w którym miejscu (x) jest podany element i wypisujesz x->poprzedni, x->nastepny. to ma taką przewagę, że możesz tam wrzucić co chcesz w obojętnie jakiej kolejności.
    Ostatnio zmieniony przez niemoralny : 09-01-2014, 22:51

  4. Reklama
  5. #4
    Avatar zakius
    Data rejestracji
    2008
    Położenie
    The Internets
    Wiek
    34
    Posty
    11,076
    Siła reputacji
    25

    Domyślny

    Moja metoda nie działa. Cykliczna dwukierunkowa z dodatkowo wskaźnikiem na początek i możliwością obsługi po indeksach będzie najprostsza do wyjęcia wyniku, ale trochę pisania cię czeka
    Problem z komputerem? Instrukcja diagnostyczna
    Cytuj Vegeta napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Baby maja wymagania jak windows vista, takze nigdy nie wiesz.
    Cytuj Dzzej napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Moje posty to esencja głupoty.
    "Don't worry, I'm just a pervert"

  6. #5
    Avatar Gray
    Data rejestracji
    2007
    Położenie
    Gdańsk
    Posty
    2,847
    Siła reputacji
    19

    Domyślny

    Pisanie listy cyklicznej do tak prostego zadania to overkill.


    Modulo działające dla ujemnych:
    Kod :
    int modulo(int a, int b) // a % b
    {
    	while (a < 0)
    		a += b;
    
    	return a % b;
    }
    W tym konkretnym przypadku (czyli tylko dla -1, nie będzie żadnych dalszych ujemnych) może być nawet uproszczona wersja:
    Kod :
    int modulo(int a, int b)
    {
    	return a < 0 ? a + b : a % b;
    }

  7. #6
    Avatar Kusterek
    Data rejestracji
    2013
    Położenie
    Warszawa
    Wiek
    32
    Posty
    1,710
    Siła reputacji
    14

    Domyślny

    @up
    działa ładnie :*

    do zamkniecia

  8. Reklama
Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Konwertowanie liczb - metrologia
    Przez Torg User w dziale Szkoła i nauka
    Odpowiedzi: 6
    Ostatni post: 08-12-2016, 21:08
  2. [C#] Losowanie losowych liczb bez powtórzeń
    Przez Dio Paladin w dziale Programowanie
    Odpowiedzi: 4
    Ostatni post: 21-11-2013, 21:42
  3. Algorytm.
    Przez Dzzej w dziale Szkoła i nauka
    Odpowiedzi: 2
    Ostatni post: 05-11-2013, 13:03
  4. [c++] Algorytm Euklidesa -
    Przez arturave w dziale Programowanie
    Odpowiedzi: 6
    Ostatni post: 12-09-2013, 20:53
  5. zamiana systemów decymalny na dowolny szybszy algorytm
    Przez Cheaster w dziale Szkoła i nauka
    Odpowiedzi: 1
    Ostatni post: 05-01-2013, 08:04

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •