@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
@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ć. ( ͡~ ͜ʖ͡°)
@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
@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
@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: 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.
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
@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.
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
#programowanie #python
źródło: comment_1667467001px6fD17h1X95nNGhKe3nuf.jpg
Pobierzdef is_odd(number: int) -> bool:if number % 2 == 0:
return True
return False
Spodziewałem się jakiegoś isOdd() ( ͡° ͜ʖ ͡°)
A poruszam się już w systemach gdzie wydajność jest zwykle olewana bo zasoby są "nieograniczone".
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
@pietryna123: taka wiedza przydaje się przy optymalizacjach wydajnych bibliotek. Np. w tym przypadku https://gcc.godbolt.org/z/nx8rfT4zv kompilator zoptymalizował kod do
andale tylko w przypadku, gdzy liczba jestunsigned@Mega_Smieszek: przeciez to nie python
@Saly: o ile mnie pamięć nie myli to dla większości kompilatorów popularnych języków to jeden pies, ofc pomijając te interpretowane jak pythong czy js