Skocz do zawartości

  •  
  • Mini kompendium
  • MimeTeX
  • Regulamin

Zdjęcie
        LICEUM        

Sprawdzenie znaku liczby.

Teoria liczb

  • Nie możesz napisać tematu
  • Zaloguj się aby odpowiedzieć
9 odpowiedzi w tym temacie

#1 blank2

blank2

    Ułamek

  • Użytkownik
  • 8 postów
0
Neutralny
  • Płeć:Mężczyzna

Napisano 13.05.2021 - 22:47

Witam wszystkich.

Możliwe że mój problem jest banalny nawet jak na podstawówkę lub też jest jakimś znanym (ale nie mi) a nie rozwiązanym problemem matematycznym.

 

Jest dowolna liczba całkowita x różna od zera. Istnieje liczba y spełniająca równanie  y = -x. Jak rozpoznać która z nich (x czy y) jest dodatnia a która ujemna. Do sprawdzenia można użyć dodawania, odejmowania, zmiany znaku na przeciwny i podwojenia liczby. Liczba 0 powiedzmy że nie istnieje. Chodzi o to by stworzyć jakiś wzór po podstawieniu do którego liczby dodatniej był inny wynik niż po podstawieniu liczby ujemnej. Wynik testu dla dowolnej x i y powinien być zawsze taki sam niezależnie od ich wartości np dawać 1 dla dodatniej a -1 dla ujemnej (lub dowolną inną liczbę ale zawsze taką samą). Test może być też taki że daje zawsze ten sam wynik dla liczby dodatniej a przypadkowy (zależny od wartości liczby) dla ujemnej lub odwrotnie.

 

Aby trochę rozjaśnić o co mi chodzi to na przykład: x +1 +y
dla x = 6 będzie: 6+1+(-6)=1
dla x = -6 też mamy: (-6)+1+6=1
więc to zły wzór bo nie rozpoznamy po wyniku kiedy x jest dodatnia a kiedy ujemna.
Działania typu: x -1 -y
dla x = 6 będzie: 6 -1 -(-6) = 11
dla x = 7 będzie: 7 -1 -(-7) = 13
więc też źle bo wynik jest zależny od wartości x (y).

Wzór nie musi zawierać x i y jednocześnie chodzi tylko o to by sprawdzić która z liczb x czy y jest dodatnia lub ujemna mając do dyspozycji tylko te działania które podałem.


Użytkownik blank2 edytował ten post 13.05.2021 - 22:51

  • 0

Afroman

    Kombinator

  • Użytkownik
3
  • Płeć:Kobieta

Napisano 25.09.2011 - 17:55

#2 Jarekzulus

Jarekzulus

    Wielki Analityk

  • +Mods
  • Redaktor
  • 4210 postów
3410
Profesor
  • Płeć:Mężczyzna

Napisano 14.05.2021 - 08:02

Może to Ci pomoze

 

2\cdot x-y

 

znak wyniku jest znakiem x tj

 

jeżeli wynikiem jest 3 to znaczy, że x jest dodatni. Jeśli wynikiem jest -3 oznacza to, że x jest liczba ujemną


  • 1

:wave: :wave: :wave: Jeśli rzuciłem choć promyczek światła na problem który postawiłeś - podziękuj. pre_1433974176__syg.jpgNad kreską


#3 blank2

blank2

    Ułamek

  • Użytkownik
  • 8 postów
0
Neutralny
  • Płeć:Mężczyzna

Napisano 14.05.2021 - 17:24

Dobrze ale... dla x = 6 masz 18 a dla x = -6 masz -18 ale już dla x = 7 masz 21 a dla x = -7 masz -21 itd. Czyli dla innego x będzie inny wynik a tak nie może być bo liczby x i y występują w formie niejawnej czyli patrząc na liczbę nie wiesz co to za liczba możesz ją jedynie rozpoznać wykonując działania i mając zawsze taki sam wynik dla każdej dodatniej lub taki sam dla każdej ujemnej. Gdybym mógł zrobić dzielenie przez x to już ten wzór by wystarczył bo bym zawsze miał 3 lub -3 niezależnie od wartości x (wartość jest nieważna potrzebuje tylko sprawdzić znak). Myślę już nad tym dłuższy czas i nic mi nie przychodzi do głowy. Nie wiem czy to jest możliwe bo mając tylko te działania co pisałem ciężko coś zdziałać. Może spróbować np do x dodać/odjąć jedną wartość a od y inną wartość (lub kilka różnych wartości) i później zamienić x i y  miejscami zrobić to jeszcze raz i porównać wyniki może da się coś zauważyć co zasugeruje jaki jest znak x lub y.

Mimo wszystko dzięki za odpowiedź.


  • 0

#4 Jarekzulus

Jarekzulus

    Wielki Analityk

  • +Mods
  • Redaktor
  • 4210 postów
3410
Profesor
  • Płeć:Mężczyzna

Napisano 17.05.2021 - 21:31

"Jest dowolna liczba całkowita x różna od zera. Istnieje liczba y spełniająca równanie  y = -x. Jak rozpoznać która z nich (x czy y) jest dodatnia a która ujemna."

 

Na tak postawione pytanie moje równanie daje odpowiedź - powiem nawet więcej po samym wyniku powiem Ci ile wynosi x a ile y :)

 

Owszem wynik nie jest zawsze taki sam ale dzięki temu mamy więcej informacji.

 

 

(2\cdot x+y)-(2\cdot x+y+x)=-x :dancer2: i już wiesz co to za liczba.

 

Opisz dokładnie problem bo puki co uznaje za rozwiązanie - wiem jaki jest znak x a co za tym idzie wiem jaki znak ma y


Użytkownik Jarekzulus edytował ten post 19.05.2021 - 12:33

  • 1

:wave: :wave: :wave: Jeśli rzuciłem choć promyczek światła na problem który postawiłeś - podziękuj. pre_1433974176__syg.jpgNad kreską


#5 Kinia7

Kinia7

    Wielki Analityk

  • ^Przyjaciele
  • 3137 postów
424
Instruktor II
  • Płeć:Kobieta

Napisano 18.05.2021 - 17:55

(2\cdot x+y)-(2\cdot x+y+x)=x 

 

To jest prawdziwe tylko dla  x=0, a to jest sprzeczne z założeniem.  :(


  • 0

#6 blank2

blank2

    Ułamek

  • Użytkownik
  • 8 postów
0
Neutralny
  • Płeć:Mężczyzna

Napisano 18.05.2021 - 20:11

Nie wiem co jest z tym wzorem ale akurat jak podstawię np x = 8 to dostaję -8 i odwrotnie.

 

Na forum programistycznym dowiedziałem się że jestem trollem :) i prawdopodobnie mój problem nie ma rozwiązania.

 

Chodzi o to że liczby są "zaszyfrowane" tzn ich zapis nie mówi wprost jaka to liczba. Mimo "zaszyfrowania" operacje takie jak dodawanie, odejmowanie, negacja i podwojenie działają prawidłowo. Problem polega na tym żeby stworzyć taki wzór lub algorytm postępowania który pozwoli rozpoznać liczbę dodatnią od liczby ujemnej.

Cały problem rozbija się o to że zapis liczb jest niejawny więc wynik takiego "badania" dla liczby ujemnej i dodatniej muszę znać wcześniej. Tak jak pisałem pierwsza odpowiedź była by dobra gdybym potrafił dzielić te liczby to wtedy dostawał bym 3 lub -3 zależnie od znaku badanej liczby. Gdyby dało się stworzyć wzór dający jedną stałą wartość dla liczby dodatniej a inną dla ujemnej mógłbym rozpoznawać je po tych wartościach bo wiem jak "zaszyfrować" dowolną liczbę do formy niejawnej. Może też być tak że dla dodatniej daje jakąś stałą wartość a dla ujemnej dowolną inną lub odwrotnie i to też by starczyło. Może być też np jakiś ciąg (badaną liczbę np odejmujemy od kolejnych wartości i dla dodatnich wartość rośnie a dla ujemnych maleje ) to też by starczyło. Ale chyba się nie da :(.

 

Ciężko mi to prościej opisać i raczej będę musiał się pogodzić z tym że to niemożliwe do odgadnięcia. Mimo wszystko dzięki za chęci.

 

 

 


  • 0

#7 Jarekzulus

Jarekzulus

    Wielki Analityk

  • +Mods
  • Redaktor
  • 4210 postów
3410
Profesor
  • Płeć:Mężczyzna

Napisano 19.05.2021 - 12:45

Ok mniej więcej rozumiem

 

Czyli nie wiesz na początku jaka to liczba ale możesz podstawić i w efekcie dostajesz coś co wiesz jaki ma znak czy też wychodzi zaszyfrowana (czy nie wiesz jaki znak ma wynik).

 

Co do uwagi Kini7 to ponieważ y=-x to powiano dawać co napisałem (odwrotny znak) ale fakt miałem tam błąd bo było chyba (2\cdot x+y)-(2\cdot x+y+x)=x a powinno (2\cdot x+y)-(2\cdot x+y+x)=-x

 

Ale (2\cdot x+y)-(2\cdot x+y-x)=x   mniejsza z tym :)

 

Puki co pomysłów brak na rozwiązanie


Może jeszcze daj przykład co masz na wejściu, co na wyjściu powiedzmy na przykazie zaproponowanego wzory przeze mnie.


  • 1

:wave: :wave: :wave: Jeśli rzuciłem choć promyczek światła na problem który postawiłeś - podziękuj. pre_1433974176__syg.jpgNad kreską


#8 blank2

blank2

    Ułamek

  • Użytkownik
  • 8 postów
0
Neutralny
  • Płeć:Mężczyzna

Napisano 19.05.2021 - 17:48

Ten ostatni wzór jest ok tzn. daje wynik równy x ale to niestety nie rozwiązuje problemu jaki znak ma liczba.

 

Trudność polega na tym że właściwie nie znamy wartości liczby (główne zadanie to odgadnięcie tej liczby ale można to zrobić odejmując tablicę liczb ale nie wiem czy wynik jest dodatni czy ujemny tzn czy odjęte jest za mało czy za dużo). Liczba jest reprezentowana przez 128 znakowy ciąg cyfr w zapisie szesnastkowym. Liczba ujemna różni się od dodatniej tym że pierwsze 64 znaków jest takich samych (liczba) a pozostałe 64 ("znak") jest inne w obu cyfrach (mając dodatnią można obliczyć ujemna i odwrotnie nawet jak nie wiesz która jest która). Wartość "znaku" dla ujemnych i dodatnich jest zależna od wartości liczby i dla każdej liczby jest inna. Prawie na pewno nie da się określić znaku tej liczby. :(

 

Dzięki za pomoc.


  • 0

#9 Jarekzulus

Jarekzulus

    Wielki Analityk

  • +Mods
  • Redaktor
  • 4210 postów
3410
Profesor
  • Płeć:Mężczyzna

Napisano 20.05.2021 - 07:40

To teraz rozumiem posądzenie o troling :)

 

Jak w takim razie chcesz wykonywać działania tj. co dostajesz na wyjściu?

Powiedzmy masz:

x= 54 AB6 ABA C25 65C 789 745 521 125 11C ABC DEF 123 258 741 258 963 254 254 123 654 ABC AB6 ABA C25 65C 789 745 521 125 11C ABC DEF 123 258 741 258 963 254 254 123 654 ABC

 

I ok to jest liczba 54AB6ABAC2565C78974552112511CABCDEF123258741258963254254123654AB reszta to znak i?


  • 1

:wave: :wave: :wave: Jeśli rzuciłem choć promyczek światła na problem który postawiłeś - podziękuj. pre_1433974176__syg.jpgNad kreską


#10 blank2

blank2

    Ułamek

  • Użytkownik
  • 8 postów
0
Neutralny
  • Płeć:Mężczyzna

Napisano 20.05.2021 - 20:02

Powiedzmy że taka liczba jak piszesz to przykładowo odpowiada liczbie "1" i to tyle :).

 

Operacje wykonuje się tak, że pierwsza połowa czyli to co pisałem że jest liczbą to jest tak naprawdę współrzędną x a reszta "znak" to współrzędna y punktu, który reprezentuje tą liczbę. Działania wykonuje się według pewnych gotowych wzorów. Polega to na dodawaniu lub odejmowaniu tych punktów. Wszystko jest liczone w arytmetyce modularnej czyli po przekroczeniu modulo zapętla się dlatego szukałem tego znaku by wiedzieć w jakim zakresie liczb jestem. "Ujemność" liczby jest umowna bo tak naprawdę wszystkie są reprezentowane przez liczby dodatnie. Oczywiście wszystko jest liczone na komputerze bo to dość duże liczby wychodzą.

 

 

 

Jeszcze raz dzięki za pomoc. To chyba najlepsze forum jakie jest w polskim internecie (z innych mnie gonią na kopach :) ).


Użytkownik blank2 edytował ten post 20.05.2021 - 20:26

  • 0