Mega_Smieszek
Kapitanie?

#programowanie #python
  • Najlepsze
  • Wszystkie komentarze
Saly
Saly
4
@pietryna123: dzielenie i resztę przez 2 można zasymulować używająć odpowiednio: przesunięcia bitowego i and
Fanatyk_Wedkarstwa
@Mega_Smieszek: haha jaki gupi ja bym switch case zrobil
z.....u
z.....u
@KrolSandaczPierwszyRozrzutny: Nie ma takiej funkcji o ile mi wiadomo ( ͡° ͜ʖ ͡°)

def is_odd(number: int) -> bool:
if number % 2 == 0:
return True
return False
Krolik
Krolik
@pietryna123: każdy mikrokontroler umie w logikę. Do sprawdzania parzystości nie potrzebujesz dzielenia modulo. Wystarczy zrobić & 1 aby sprawdzić lsb. To pójdzie nawet na mikrokontrolerze za $0.10. Jak ktoś używa dzielenia modulo to od razu widzę że lama.
kanclerz_krolestwa_paprotnikow
@Mega_Smieszek: xddd jeżeli coś jest głupie i działa to podobno nie jest głupie
strusmig
@Mega_Smieszek: programistą nie jestem, ale ze studiów kojarzę że było takie coś jak dzielenie modulo %2 i jak zwracało resztę 0 to liczba była parzysta xD
kegnar
@Mega_Smieszek: wielka szkoda, że nie ma w matematyce czegoś takiego jak reszta z dzielenia. Przydałoby się to do sprawdzenia czy liczba jest parzysta. Muszę to opatentować. ( ͡~ ͜ʖ ͡°)
KrolSandaczPierwszyRozrzutny
@Mega_Smieszek: pajtoniarze mają pewnie po prostu od razu gotową funkcję która to sprawdza, a nawet jeśli nie (nie wierzę że nie mają) to można to zrobić matematycznym sposobem xd
pietryna123
pietryna123
@strusmig: To nie jest takie oczywiste. Owszem, jest to popularna operacja i w przypadku absolutnej większości procesorów ogólnego przeznaczenia ALU będzie miało implementację takiej operacji. Może nawet jednocyklową. Jednakże w pewnych uproszczonych kontrolerach może nie być nawet mnożarki, nie mówiąc o dzieleniu modulo. W takim wypadku, jeśli mamy ograniczony zbiór danych to prosty LUT (a tutaj de facto mamy kretyńską implementacją LUTa) będzie wydajniejszy niż pozwolenie kompilatorowi na wygenerowanie absurdalnej
KrolSandaczPierwszyRozrzutny
@zgubiles_sie_jelonku: w pajtonie nie ma gotowej funkcji na coś takiego? Przyznam że jetesk zaskoczony xd
Spodziewałem się jakiegoś isOdd() ( ͡° ͜ʖ ͡°)
Balactatun
@pietryna123: weź pod uwagę, że oprócz wydajności, bardzo ważna jest też czytelność kodu
pietryna123
pietryna123
@Saly: Właściwie już o tym zapomniałem bo na tle programowania to pracy dla elektroników to nie ma za wielu. A nie będę klepał sterowników do pieców węglowych czy kolejowych szaf za psie pieniądze...
A poruszam się już w systemach gdzie wydajność jest zwykle olewana bo zasoby są "nieograniczone".
sadhas
sadhas
Nie ma takiej funkcji o ile mi wiadomo ( ͡° ͜ʖ ͡°)


def is_odd(number: int) -> bool:

if number % 2 == 0:
Saly
Saly
0
@sadhas: tak, praktycznie w każdym języku tak jest. Wyjątkiem jest JS (i pewnie inne języki z słabym typowaniem też), bo tam trzeba jeszcze dodać ceremonię związaną z obchodzeniem się z wartością w taki sposób, żeby nie zrobić czegoś głupiego.

Zobacz jakie to cudaczne https://github.com/i-voted-for-trump/is-odd/blob/master/index.js

W pythonie było w sumie podobnie. W dawnych czasach przed pojawieniem się type hintów dobrą praktyką było walidowanie argumentów wejściowych na początku funkcji za pomocą ifów
piternet
@Saly przy czym - nie musi działać dla liczb ujemnych
Saly
Saly
0
@piternet: no tak, modulo dla liczb ujemnych to zawsze kontrowersyjna sprawa
Saly
Saly
0
A poruszam się już w systemach gdzie wydajność jest zwykle olewana bo zasoby są "nieograniczone".


@pietryna123: taka wiedza przydaje się przy optymalizacjach wydajnych bibliotek. Np. w tym przypadku https://gcc.godbolt.org/z/nx8rfT4zv kompilator zoptymalizował kod do and ale tylko w przypadku, gdzy liczba jest unsigned
Pawu1on
@zgubiles_sie_jelonku: FUknjca powinna nazywać się is_even ( ͡° ͜ʖ ͡°)
secs
secs
0
#python


@Mega_Smieszek: przeciez to nie python