-
31. Data: 2019-12-18 22:19:09
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: g...@g...com
W dniu sobota, 14 grudnia 2019 02:58:02 UTC+1 użytkownik osobliwy nick napisał:
> > Być może. Nie zmienia to jednak faktu, że C++ jest językiem bardzo złożonym, i że
jego złożoność w dużej mierze wynika z zaszłości historycznych, które osobę
nastawioną na konkretne cele nie będą szczególnie interesować, a mogą łatwo
zniechęcić.
>
> No własnie zniechęciłem się nieco do tego języka, z drugiej jednak strony tak jak
pisał kolega, widzę, że jest on uniwersalny, dużo firm w tym programuje. Ale już na
wstępie pisząc swój pierwszy program w C++ napotykam schody, bo tak jak pisałem w
poprzednim wątku chcę robić przykładowo obliczenia na liczbach 128-bitowych. I już
jest problem, bo C++ nie obsługuje takich liczb. Są biblioteki, ale najpierw trzeba
je znaleźć, później zainstalować, po drodze pełno niuansów. Pamiętam jak próbowałem
kiedyś to zrobić - i nie udało się. Pobrałem biblioteki, ale programy mi ich nie
czytały.
>
> Ten Python mnie przekonuje. Słyszałem, że to łatwy i przystępny język. Wspiera duże
liczby, tak jak napisał Godek. Jest popularny, więc pewnie łatwo znajdę materiały na
jego temat. Co więcej widziałem w kilku pracach matematycznych, że był używany do
obliczeń. Wówczas mnie to zdziwiło, bo sądziłem, że to taki prosty, ograniczony
język, a jednak chyba nie.
Jakby co, to wprowadziłem wcześniejszy program w Haskellu do online'owego edytora
(który wspiera wiele różnych języków), także możesz sobie uruchomić i pozmieniać tak
jak będziesz miał ochotę.
https://rextester.com/RAV59905
-
32. Data: 2019-12-18 23:37:01
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: "M.M." <m...@g...com>
On Saturday, December 14, 2019 at 2:58:02 AM UTC+1, osobliwy nick wrote:
> No własnie zniechęciłem się nieco do tego języka, z drugiej jednak strony tak jak
pisał kolega, widzę, że jest on uniwersalny, dużo firm w tym programuje. Ale już na
wstępie pisząc swój pierwszy program w C++ napotykam schody, bo tak jak pisałem w
poprzednim wątku chcę robić przykładowo obliczenia na liczbach 128-bitowych. I już
jest problem, bo C++ nie obsługuje takich liczb. Są biblioteki, ale najpierw trzeba
je znaleźć, później zainstalować, po drodze pełno niuansów. Pamiętam jak próbowałem
kiedyś to zrobić - i nie udało się. Pobrałem biblioteki, ale programy mi ich nie
czytały.
Po prostu pisanie w C++ pewnych projektów bez odpowiednich bibliotek to
porażka z powodu olbrzymiego nakładu pracy. Z odpowiednimi bibliotekami
można pisać łatwo, przyjemnie, bez wnikania w szczegóły. Za to C++ ma
olbrzymią zaletę, mianowicie jak się trochę czasu poświęci na wnikanie w
szczegóły, na dobór algorytmów, na testy, na implementację dostosowaną
blisko sprzętu, to uzyskuje się efekt jakiego w żadnym innym języku się
nie uzyska. Z tego co mi wiadomo, wiele innych języków i bibliotek dla
innych języków było i jest nadal pisanych właśnie w C++ - z powodu zalety o
której przed chwilą pisałem.
> Ten Python mnie przekonuje. Słyszałem, że to łatwy i przystępny język. Wspiera duże
liczby, tak jak napisał Godek. Jest popularny, więc pewnie łatwo znajdę materiały na
jego temat. Co więcej widziałem w kilku pracach matematycznych, że był używany do
obliczeń. Wówczas mnie to zdziwiło, bo sądziłem, że to taki prosty, ograniczony
język, a jednak chyba nie.
Ma biblioteki do obliczeń, a te biblioteki są pisane (ja myślę) w C++, czyli
pisząc w Pythonie tak naprawdę używasz kodu (nierzadko) wyśrubowanego w C++.
Czasami nawet nie w C++, tylko OpenCL i CUDA, a obliczenia idą na GPU. Można
przeprowadzać żmudne obliczenia w Pytnonie? Myślę że można, ale czy to tak
naprawdę oblicza kod pisany w Pythonie, czy w C++, czy może w OpenCL - tego
nie jestem taki pewny.
Pozdrawiam
-
33. Data: 2019-12-19 11:09:35
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: Maciej Sobczak <s...@g...com>
> > Jeżeli można translować w obu kierunkach
[...]
>
> Dziwna ta logika.
> W ten sam sposób JS jest wg tej teorii lepszy od TS, a przecież to
> nieprawda. TS dodaje statyczne typowanie, interfejsy, OOP i kilka innych
> ficzerów.
Bingo. Wymieniłeś dodatkowe cechy, które sprawiają, że jest wartość dodana z punktu
widzenia programisty. I właśnie ta wartość dodana sprawia, że istnienie TS ma sens.
Natomiast gdy zapytałem o taką wartość dodaną w Ć (przykładową pożądaną odpowiedzią
mogłoby być np. "Ć ma GC"), to nadal odpowiedzi nie dostałem. Wiem tylko, że można
translować na coś, co i tak już używam, ale przewalanie towaru z jednej kupki na
drugą bez zmiany abstrakcji to tylko zabieg techniczny, który raczej bym z procesu
eliminował, niż dodawał.
Dlatego nie zostałem fanem Ć.
--
Maciej Sobczak * http://www.inspirel.com
-
34. Data: 2020-01-01 23:25:48
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: Maciej Sobczak <s...@g...com>
> > W temacie eksploracji zagadnień matematycznych Wolfram nie ma merytorycznej
konkurencji.
>
> Polimeryzowałbym.
Super, noworoczne otwarcie. :-)
> 1. Jest droga.
Przecież pisałem o merytorycznej konkurencji.
I oczywiście zależy co to znaczy "droga". Są programy, przy zakupie których
Mathematica ginie w finansowym szumie.
> 2. Nie potrafi tego co MISAR. Ok, MISAR to zupełnie inna półka.
> Choć niewątpliwie matematyka.
https://en.wikipedia.org/wiki/Misar
Poproszę o dalsze wskazówki. To jest tak inna półka, że nawet tej półki nie
znalazłem.
> 3. Daje się zastąpić Pythonem - niekiedy, ale zadziwiająco dobrze.
Niekiedy to i w pamięci można policzyć. Jeśli konkurencja jest konkurencyjna tylko
"niekiedy", to nie jest to poważna konkurencja.
> 4. W numeryce jest zbyt powolna.
I wtedy daje się zastąpić Pythonem? Czy może czymś innym?
A może wtedy to pomaga:
https://www.nvidia.com/object/cuda-programming-mathe
matica
?
> 5. Potrafi się wieszać na niezbyt trudnych rzeczach.
Podaj przykład.
Nie twierdzę, że nie, bo sam mam kolekcję różnych niedociągnięć, ale chętnie poznam
nowe.
--
Maciej Sobczak * http://www.inspirel.com
-
35. Data: 2020-01-02 12:36:02
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: g...@g...com
W dniu środa, 1 stycznia 2020 23:25:50 UTC+1 użytkownik Maciej Sobczak napisał:
> > > W temacie eksploracji zagadnień matematycznych Wolfram nie ma merytorycznej
konkurencji.
> >
> > Polimeryzowałbym.
>
> Super, noworoczne otwarcie. :-)
>
> > 1. Jest droga.
>
> Przecież pisałem o merytorycznej konkurencji.
>
> I oczywiście zależy co to znaczy "droga". Są programy, przy zakupie których
Mathematica ginie w finansowym szumie.
>
> > 2. Nie potrafi tego co MISAR. Ok, MISAR to zupełnie inna półka.
> > Choć niewątpliwie matematyka.
>
> https://en.wikipedia.org/wiki/Misar
>
> Poproszę o dalsze wskazówki. To jest tak inna półka, że nawet tej półki nie
znalazłem.
Na ile mogę się domyślić, chodzi o projekt MIZAR, zapoczątkowany przez Andrzeja
Trybulca z Białegostoku.
http://mizar.org/
Projekt podobny np. do Coq albo systemu LCF Robina Milnera (dla którego powstał język
ML).
W niektórych kręgach notacja Mizara jest popularną notacją do formalizacji dowodów
matematycznych
-
36. Data: 2020-01-02 21:22:58
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: Maciej Sobczak <s...@g...com>
> A to znaczy że ja np. mam Mathematicę (i od roku czy dwóch jakoś
> nie odczułem potrzeby użyć, ale to inna historia). I jak napiszę
> program w Mathematicy i będę go chciał rozdawać za darmo to być
> może ty go sobie uruchomisz. Ale dla kogoś kto nie ma licencji na
> Mathematicę będzie on niedostępny.
Podobnie, jak ktoś, kto nie ma Windowsa, nie uruchomi sobie programu na Windowsa. A
jak nie ma iOSa, to nie uruchomi programu na iOSa. To chyba zawsze tak jakoś było.
> A to w zasadzie uniemożliwia
> rozwój oprogramowania FOSS na platformie Wolframa.
Tak samo jak niemożliwy był rozwój oprogramowania FOSS na Windowsa i na iOSa, tak?
> MISAR to jest program dla matematyków. I to bardziej niż
> Mathematica. Jeżeli zrozumiesz na czym polega bycie matematykiem.
> Inna rzecz - prawdziwych matematyków (w tym matematyczek) jest
> bardzo bardzo mało.
I nadal nie wiem, co to jest i gdzie to jest.
Ale ponieważ nie jestem matematykiem, to nie jest mi smutno. Natomiast jestem
inżynierem i cieszę się, że jest Wolfram.
> Python ma moduł do obliczeń symbolicznych (CAS). A nawet bez tego
> modułu da się np. łatwo i krótko zdefiniować generowanie
> wielomianów Czebyszewa... na wzorkach. Dodaj do tego numpy i
> matplotlib, czyli w zasadzie całego Matlaba bez Simulinka i
> toolkitów. Dodaj do tego scipy itd. Dodaj do tego CUDA (też
> jest).
I jak to wszystko do siebie dodam, to się okaże, że każde wymaga innej wersji Pythona
i w sumie dwóch sprzecznych systemów operacyjnych a przy okazji będzie kompletnie nie
do opanowania na poziomie licencji. A jak mi ten składak nie zadziała, to na które
konkretnie forum dyskusyjne mam się udać? Jest jakieś, gdzie mi nie powiedzą, że to
moja wina?
> Dodaj do tego rzeczy których nie ma i nie będzie w
> Mathematicy (np. moduły do pisania gier, serwer WWW).
Wpisałem w Googlu "Wolfram games" i zgadnij.
A w temacie www:
https://www.wolfram.com/products/webmathematica/
No i jest jeszcze wolframcloud. Zależy, co ten serwer www miałby robić - może się
okazać, że zamiast stawiać serwer, lepiej postawić program na istniejącym już
serwerze.
Więc nie ryzykowałbym twierdzeń typu "nie ma i nie będzie".
> Mathematica w sensie numeryki jest beznadziejna. I nie dlatego że
> liczy zbyt wolno. Ale przede wszystkim dlatego, że ma bardzo
> ograniczony wybór algorytmów. Jest w ogóle coś takiego jak
> macierz rzadka w Mathematicy?!?
https://reference.wolfram.com/language/tutorial/Line
arAlgebraSparseArrays.html
https://reference.wolfram.com/language/ref/SparseArr
ay.html
O to chodziło?
> 1. Sum[f[k], {k, 1, 3}] rozwijało się do f[1]+f[2]+f[2]+[3] w
> pewnych okolicznościach przyrody. To już poprawili.
Ja pytam co nie działa, a nie co poprawili.
> 2. Cały moduł realonly był skopany koncepcyjnie. Wofram wycofał
> readonly.
To w końcu realonly, czy readonly?
> 3. Niezbyt trudne ODE (dwa nieliniowe pierwszego stopnia) padały
Padały, czy poprawili?
> 4. Jakieś PDE (NLH i okolice) - totalna porażka
Prosiłem o przykład a nie o totalności.
> 5. Trudności z definiowaniem np. zmiennych całkowitych, zmiennych
> rzeczywistych itd.
Bo w ogóle nie ma zmiennych. Tam są symbole a nie zmienne.
I w jakim sensie Python jest tu konkurencyjny?
> 6. Problemy z PL-literkami. Problemy z np. zapis
> aniem/wydrukowaniem noteboka tak aby te literki były.
Z jaką literką jest problem? Ja nie mam. Może to też poprawili?
> 7. Gorsze niż w przypadku Matlaba (czyli także matplotlib w
> Pythonie) rysunki - są ładne, ale nie publish-ready - kiepsko z
> eksportem w formacie wektorowym.
"U mnie działa"?
> I to na razie tyle, bo po co kopać leżącego?
Ale Ty kopiesz powietrze. Nikt nie leży. Nie podałeś żadnego przykładu.
--
Maciej Sobczak * http://www.inspirel.com
-
37. Data: 2020-01-02 21:26:58
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: Maciej Sobczak <s...@g...com>
> Na ile mogę się domyślić, chodzi o projekt MIZAR, zapoczątkowany przez Andrzeja
Trybulca z Białegostoku.
>
> http://mizar.org/
Ale to nie konkuruje z Wolframem, wydaje się raczej istnieć w zupełnie innej
przestrzeni. Tzn. wyobrażam sobie, że ktoś używa obu a nie jednego zamiast drugiego.
--
Maciej Sobczak * http://www.inspirel.com
-
38. Data: 2020-01-02 21:32:00
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: g...@g...com
W dniu czwartek, 2 stycznia 2020 21:27:02 UTC+1 użytkownik Maciej Sobczak napisał:
> > Na ile mogę się domyślić, chodzi o projekt MIZAR, zapoczątkowany przez Andrzeja
Trybulca z Białegostoku.
> >
> > http://mizar.org/
>
> Ale to nie konkuruje z Wolframem, wydaje się raczej istnieć w zupełnie innej
przestrzeni. Tzn. wyobrażam sobie, że ktoś używa obu a nie jednego zamiast drugiego.
Zgadza się, w kontekście tej dyskusji to przykład zupełnie od czapy.
-
39. Data: 2020-01-04 20:00:50
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: Maciej Sobczak <s...@g...com>
> Ani nie było, ani nie jest. Program "fur Windows" można było
> odpalić w Linuksie. Na przykład pod emulatorem.
> Od pewnego czasu jest Java - ten sam plik odpalisz w Linuksie,
> Windows i na Jabolkach.
Program w Wolframie też mogę odpalić na Windowsie albo na Linuksie, bo mam maszynę
wirtualną na oba systemy. O, to zupełnie, jak w Javie.
Nie wiem, po co brniemy w ten temat. Jeśli chciałeś skrytykować Wolframa za to, że
jest przenośny i że można robić w nim open-source tak samo jak w Javie, to tak,
owszem, można.
> Primo, misar.org. Secundo, smutno jest że nie wiesz że MISAR jest
> polskim osiągnięciem - patrz zapodany url.
Nie wiem, bo mi nie był do tej pory potrzebny. I wcale nie jest mi z tego powodu
smutno.
[Python i milion bibliotek]
> Nie poskładasz, jeżeli jesteś za głupi. A za twoje IQ odpowiadam
> nie ja, tylko twoje geny, czyli rodzice. A czy jesteś za głupi to
> się nie dowiesz jeżeli nie spróbujesz. To co, masz
> cykora?
Raczej ograniczoną ilość czasu na ryzykowne eksperymenty. Dlatego wybieram
rozwiązanie, któro daje mi większą szansę na sukces.
> >A jak mi ten składak nie zadziała, to na które konkretnie forum dyskusyjne mam się
udać?
>
> Hoo, hoo, hooo... Pokolenie copy-paste i szukanie frajerów którzy
> za darmo zrobią twoją robotę?
No i się zapętliłeś. Poprzednio argument był taki, że Mathematica jest droga. A teraz
sugerujesz, że chcę mieć coś za darmo? Pomyśl, zanim napiszesz.
Skrót jest taki: jeśli Twój czas jest coraz cenniejszy (może tak być z różnych
powodów), to będziesz coraz bardziej skłonny, żeby zapłacić za szybszy efekt.
Inaczej: jedni płacą swoim czasem rozwiązując problemy, których drudzy nie mają, bo
zapłacili za szybszy efekt pieniędzmi. I tak z grubsza da się wyjaśnić wiele wyborów,
również wybór między Wolframem i Pythonem. Ostatecznie oba są płatne, tylko w różnej
walucie.
--
Maciej Sobczak * http://www.inspirel.com
-
40. Data: 2020-01-08 11:12:21
Temat: Re: Ile czasu zajmie komputerowi rozszerzony algorytm euklidesa?
Od: bartekltg <b...@g...com>
On Saturday, December 14, 2019 at 2:58:02 AM UTC+1, osobliwy nick wrote:
> > Być może. Nie zmienia to jednak faktu, że C++ jest językiem bardzo złożonym, i że
jego złożoność w dużej mierze wynika z zaszłości historycznych, które osobę
nastawioną na konkretne cele nie będą szczególnie interesować, a mogą łatwo
zniechęcić.
>
> No własnie zniechęciłem się nieco do tego języka, z drugiej jednak strony tak jak
pisał kolega, widzę, że jest on uniwersalny, dużo firm w tym programuje. Ale już na
wstępie pisząc swój pierwszy program w C++ napotykam schody, bo tak jak pisałem w
poprzednim wątku chcę robić przykładowo obliczenia na liczbach 128-bitowych. I już
jest problem, bo C++ nie obsługuje takich liczb. Są biblioteki, ale najpierw trzeba
je znaleźć, później zainstalować, po drodze pełno niuansów. Pamiętam jak próbowałem
kiedyś to zrobić - i nie udało się. Pobrałem biblioteki, ale programy mi ich nie
czytały.
Boost. Praktycznie wszystko, co potrzebujesz, jest w booscie.
Nie zawsze najlepsze, np do macierzy wolę eigen niż boostowe macierze,
ale jest.
W innych językach jets tak samo. Nie masz bibliotek numerycznych w samym
pythonie, masz numpy i scipy. Różne biblioteki cześciowo pokrywające to samo.
Różnica jest w obsłudze tych bibliotek/pakietów. W pythonie jest to
przyjemnijesze, masz osobny manager. W c++ najcześćeij robisz to z poziomu
OSa, robias sudo apt install :)
Wracając do boosta, masz tam int128, float 128, oraz większe liczby.
Dowolna długość/prcyzja w ich iomplementacji i w wersji GMP/mpfr,
jeśli je zainstalujesz.
> Ten Python mnie przekonuje. Słyszałem, że to łatwy i przystępny język. Wspiera duże
liczby, tak jak napisał Godek. Jest popularny, więc pewnie łatwo znajdę materiały na
jego temat. Co więcej widziałem w kilku pracach matematycznych, że był używany do
obliczeń. Wówczas mnie to zdziwiło, bo sądziłem, że to taki prosty, ograniczony
język, a jednak chyba nie.
Zdecydowanie nei jest ograniczony. I do obliczeń się nadaje.
Ale nie do wszystkich. Jeśli głownie odpalasz procedury z bibliotek,
jakieś numpy czy biblioteki do uczenia maszynowego, jest super
(a to wiekszosć obliczeń naukowych). Ale pisząc algorytm od zara
na skalarach, będzie koszmarnie wolne.
(BTW, nie to, że w C++ nalezy pisać ręcznie zamiast uzywac bibliotek.
Skichasz się a nie napiszesz czegoś równei szybkiego jak MKL:))
Wiec jak zawsze, dobór języka zależy od potrzeb i zadania.
Do wielokrotnego odpalenia eulidesa brałbym jednak coś kompilowalengo,
jak c++.
pzdr
bartekltg