Blogowo wspomnę, że mimo zrobionych zakupów,
dalej nie mam herbaty, kawy, piwa, wina. Oj,
biedny jestem, skazany na sok jabłkowy :-)
Nie a propos, lecz i tak skojarzył mi się dowcip,
którym sławny Gelfand zareagował w Warszawie
na moje odpowiedzi, gdy mnie--jeszcze studenta--
najpierw wypytywał o moją wiedzę (powiedziałem,
że nic nie umiem), a potem o zainiteresowania
(okazało się, że jedna dziedzina po drugiej, że
wszystkie mnie interesują, że w każdej mam ochotę
pracować). Powiedział mi, że jestem jak żebrak na
weselu. Pytają żebraka: chcesz wino czy wódkę?
A on: i piwo też.
Pozdrawiam,
Włodek
Witaj Pawle!
Czas na trivia:
przy okazji zauważyłem po raz pierwszy,
że google daje oceny internauty przez
innych. Darek ma pełne 5 gwiazdek
przy 13 ocenach. Paweł ma też imponujące
4 gwiazdki przy 3 ocenach, Artur w ogóle
nie byl oceniany, co chyba bardzo dobrze o nim
świadczy :-) (bo nie otworzył profilu?), oraz
ja byłem oceniany, o zgrozo, aż 80 razy,
i mam 3 gwiazdki z 5, czyli mniej więcej
przeciętnie(?), cie choroba. Okazuje się
też, że mam profil :-) (w google'u).
Pozdrawiam,
Włodek
> Bardzo dobra idea, jestem oboma rękami za :>
Cieszę się!
> Cieszy mnie jednak bardzo, ze grupa żyje
> i że są satysfakcjonujące postępy.
> A przede wszystkim to, ze jest miejsce gdzie mozna
> skondensować i wiedzę w założonym zakresie i
> doświadczenie i otrzymywane wyniki.
Tutaj mogę sobie wreszcie spokojnie detchnąć!
Jest miła atmosfera. Od dłuższego czasu tak
miło było mim tylko jakiś czas temu (pół roku?)
z Arturem na mini-forum "matematyka", które
stworzyłem w "gazecie". Był jeszcze pewien
miły fizyk. Wtedy w pewnym okresie zwaliło
się na mnie za dużo i zanikłem, że tak powiem.
Poza tym miałem uczucie, że technicznie
"gazeta" zbyt prymitywnie nas zaopatrzyła,
Trudno mi w tym momencie powiedzieć o co chodzi.
(Czy Ty, Arturze, miałeś wrażenie, że było
tam od strony systemu gładko?)
W ogóle się tu tym razem wpisuję, żebyśmy
celebrowali, bo mija dziś pierwszy tydzień
od założenia grupy przez Darka (co uczynił
2 czerwca; dziś jest 9ty). Muszę pójść na
zakupy jeszcze raz i zaopatrzyć się w wino,
wódkę, whisky, piwo... i celebrować. Też
w herbatę i kawę.
Oszacowałem, że w 8 tygodni uzykamy pierwsze
wyniki. Chyba czasu będzie w sam raz. Mamy jeszcze
7 tygodni :-) Darek odwalił wstępną robotę, tworząc
grupę, i przez zebranie materiałów--wiemy gdzie
zaglądać, żeby mieć wspólny odnośnik do
s.a. czy do tabeli. Artura sugestia szczęśliwie
trafiła na Darka. Przez tydzień pewne rzeczy
się wyklarowały. Można ostrożnie, ale
z przyjemnością celebrować pierwszy tydzień.
A ja sobie przepisałem ostatni perl kod w C++.
Ciężko mi idzie, bo komputery mnie nie lubią.
Najpierw w perlu siałem literówkami, teraz w C++.
Na razie ten mój kod wygląda jak C. Skoro
zaadoptowałem z perla. To nie takie ważne.
Nic nie pamiętam z C++. Jak uzyskać czas? Czy
jest jakieś time.h? Nie mam obecnie książek z C++,
które by mi odpowiadały (jestem mimoza pod tym
względem). Lubiłem książki Roberta Lafore. Z biegiem
czasu on się ciut psuł. Myślę, że wydawnictwa
narzucały mu swoje wymagania i czyniły go ciut
bardziej podobnym do nieciekawych autorów.
> Jak tylko przegnam klientów też postaram
> się Was dogonić :>
> dK
Niewiele tego dogonienia, ale chyba napiszę
post, który sytuację podsumuje. Nie będziesz
musial przebijać się przez nieco chaotyczne
posty.
***
Tak, nawet bez mierzenia czasu czuję
o ile szybsze jest C++ od perla. Nie za
darmo. Na przykład albo trzeba sztywno
wprowadzać wymiary (dimension), albo
samemu dbać o memory management
(o gospodarowanie pamięcią). Po perlu
czasem wprowadzam zmienną tak:
int $p; // :-)
Ironia, bo w perlu mi się zapominało
i pisałem: p=0; ### ups! oops!!
No nic, pośpię, po czym przystąpię do
samego s.a., choćby w zabawkowej
najpierw formie.
Pozdrawiam muszkieterów s.a.,
Włodek
PS. Paweł, odezwij się :-)
Mnie z kolei rozłożył dziś upał. Wczoraj posunąłem się nieco do przodu
z kodowaniem, ściagnąłem i skompilowałem też NTL -- A Library for
Doing Number Theory, gdzie mam duże liczby. Przeglądnąłem kilka
bibliotek - ta mi się wydała najprzyjaźniejsza.
Włodku, BTW, pomyśl o użyciu STL (Standard Template Library) a dziś to
już chyba część standardu C++. Jej użycie pozwala względnie tanim
kosztem (no, plus inwestycja w nauczenie się jej ) posługiwać się
strukturami danych o podobnej do perla elastyczności. Są dynamiczne
tablice (wektory), listy, mapy, zbiory, multizbiory itd.
Poza tym, poznanie tej biblioteki - czai się za nią pewna filozofia,
tzw. "generic programming" - daje prawdziwą intelektualną satysfakcję.
Znać rękę ludzi, którzy nie tylko programowaniem ale i bardziej
abstrakcyjnymi rzeczami się interesowali.
Dziś - ogarnęło mnie lenistwo. Żona jadąc na jakąś uroczystość
wyrzuciła mnie z samochodu w parku i czytałem o sprawach nie
związanych ani z s.a. ani z teorią liczb. Jedyna rzecz poza tym na
jaką zwracałem uwagę to obrót ziemi, bo mi cień zjadało co jakiś czas
i musiałem szukać innej ławki.
Potem małzonka zabrała mnie wracając a teraz w ogóle nic mi się nie
chce. Wpadłem zresztą na ten sam pomysł co Ty i nabyłem wino
chilijskie i z wolna sączę. Polecam generalnie wina chilijskie tak jak
używanie STL-a. Na jednym i na drugim się nigdy nie zawiodłem.
Pozdrawiam leniwie
Artur
> Włodku, BTW, pomyśl o użyciu STL (Standard
> Template Library) a dziś to już chyba część standardu C++.
Dziękuję. Postaram się, choć mam słabe
przygotowanie. Mam od lat "The C++ Standard
Libray", autor: Nicolai M. Josuttis, w większości
o STL. Zakłąda znajomość C++.
> Jedyna rzecz poza tym na jaką zwracałem
> uwagę to obrót ziemi, bo mi cień zjadało co
> jakiś czas i musiałem szukać innej ławki.
Życzę wszystkim cienistości w upale
i słoneczności w chłodzie!
> Polecam generalnie wina chilijskie tak jak
> używanie STL-a.
Dzięki mistrzu raz jeszcze jeszcze.
Dałem dwa odcinki "raportu". Trzeci
zacznę od definicji liczb barokowych,
potem dam definicję TWR, itd.
Dajcie znać, czy ten "raport" ma sens.
Może niepotrzebnie glindzę o oczywistych
sprawach?
Pozdrawiam,
Wlodek
Na początku dane jest kilka kupek kamieni,
powiedzmy:
3 2 1
Gracze na przemian, w ramach swojego
ruchu, usuwają, z dokładnie jednej kupki,
co najmniej jeden kamień.
Gra sprawiedliwość: gdy po ruchu gracza,
każda kupka ma tyle samo kamieni, to gracz
ten WYGRAŁ.
Gra niesprawiedliwość: gdy po ruchu gracza,
każda kupka ma tyle samo kamieni, to gracz
ten PRZEGRAŁ.
UWAGA: Kupki z 0 kamieniami też się liczą.
====== Liczba kupek w czasie gry nie zmienia
się. Na początku zakładamy, że każda kupka
ma dodatnią liczbę kamieni. potem może mieć
zero. (Gdyby na początku jedna lub więcej
z kupek kamieni miała ich 0, to gra sprowadziłaby
się w takim przypadku do Nim).
Bawcie się dobrze,
Włodek
Pomyślałem o dodatkowych elementarnych
ruchach, które można mieszać losowo
ze zmienianiem jednego z wykładników o +/- 1.
I tak zamierzam przy dodawaniu nowego
czynnika pierwszego p = prime[i] dawać
mu z miejsca wykładnik maksymalny w[i]
(patrz uwaga na końcu postu).
W dalszym ciągu będę zmieniał wykładnik
tylko jednej liczby pierwszej p = prime[i].
Ale czasem następująco, i właściwie
bardziej elementarnie, w sensie długości
kroku.
Od wykładnika v będę przechodził,
gdy los tak zechce, albo do jednego
z wykładników (v+1)*k - 1 \< w[i]
(gdzie prime[i] jest liczbą pierwszą, dla
której zmnieniamy wykładnik), albo
na odwrot, do (v+1)/k - 1, gdy k | v+1.
Chodzi o to, że własności podzielności
sumy dzielników sd(p^v) = (p^(v+1) - 1)/(p-1)
mniej się zmieniają przy podanym rodzaju
przejść niż przy dodawani/odejmowaniu 1.
Przy przejściu:
v |--> u := (v+1)*k - 1
czyli, w domenie sumy dzielników
p^v |--> p^u dostajemy przejście
sd(p^v) |--> sd(p^u),
liczba pierwsza p daje wszystkie poprzednie
rekomendacje oraz mogą dojść nowe (jak nie,
to będzie spora kara, więc mała szansa
zaakceptowania takiego ruchu). Płaci się za
to (nic za darmo) potrzebą dodatkowych
rekomendacji dla samego p.
Przy przejściu:
v |--> u := (v+1)/k + 1
jest na odwrot. Liczba p daje mniej
rekomendacji innym liczbom pierwszym,
ale sama też mniej wymaga.
A dlaczego nie ograniczę się do takich
ruchów? Bo obawiam się utknięcia
w małym zbiorze wykładników dane liczby
pierwszej. Chodzi o relatywnie mało liczb
pierwszych, raczej o te małe , głównie 3 5 7 11.
Dla takich p, że w[p] = 1 lub 2, nowe ruchy
pokrywają się ze starymi czyli nic nie wnoszą.
Mieszanie "nowych" czyli "multiplikatywnych"
ruchów z ruchami +/-1 zapewni wszędobylskie
podróżowanie.
***
A dlaczego ruchy wprowadzające nowy czynnik
pierwszy będą miały u mnie wykładnik maksymalny?
Dlatego, że jeżeli chcę polować na liczby barokowe
o mniejszych wykładnikach, lub nawet o mniejszej
liczbie czynników pierwszych, to przecież od razu
mogłem wziąć mniejsze wykładniki i mniejszy
nośnik. Wtedy polowanie na mniejsze barokoi jest
intensywniejsze, niż przy większych parametrach.
Gdy przechodzę do większych, to nie chcę
za dużo czasu tracić na mniejsze.
***
Pozdrawiam,
Włodek
PS. Przerwałem raport, bo łatwiej mi na przemian
albo głównie pisać albo głównie kodować, a nie
pół na pół. (Nawet wspomnienia biznesowe
odkładam na nieco później :-)
***
Gdyby człowiek tak mi dokuczał i znęcał
się nade mną jak komputery, to bym jej
lub jemu powiedział, żebyśmy sobie dali
spokój. A z komputerami jakoś rozwodu
nie biorę, tylko się morduję. A są ludzie,
co mają naturalny talent. Jednemu
początkującemu programiście dawałem
jakieś rady dotyczące kodu, który właśnie
pisał, a on w 100% zrelaksowany,
patrząc grzecznie na mnie (w końcu
przecież rozmawiamy), i jednym okiem
na ekran. w trakcie rozmowy modyfikuje
kod, bez żadnej obawy, że może kod
zabałaganić, itp. Po prostu talent.
Dla kontrastu myślę o sobie. Choćby
w tych dniach. Nic tak mnie niepokoi, jak
"bug" ("robak"?) w programie, który nawet
nie powoduje złych wyników (tylko grozi
nimi na przyszłość), i tym bardziej trudny
jest do uchwycenia i naprawienia. Tak
zanieppokojony, źle się czułem, gdy
widziałem w moim output pliku nieprzewidziane
puste linijki u góry. Nie zawsze się pokazywały,
czasem było ich więcej, a czasem mniej.
Kod sprawdziłem. Nie widziałem żadnego
miejsca, które wpisałoby kilka pustych
linijek na początku pliku (a więc przed pętlą).
Nawet po radę zadzwoniłem do brata. Dał
mi rutynową radę wpisania debugowych print
instrukcji. Straaaasznie mi się nie chiało.
Nawet podejrzewałem dziwnego "buga"
w systemie unixowym Maca: w czasie
pracy programu, podglądalem output plik
za pomocą "more" (brat mi przypomniał
przy okazji o lepszym narzędziu od "more",
mianowicie "less"; odtąd znowu będę
używał "less"). Podejrzewałem, że może
każde podglądnięcie powoduje wpisanie
przez system pustej linijki na początku
podglądanego pliku. Brzmi to egzotycznie,
ale już nie takie rzeczy się zdarzały.
Wreszcie dotarło do mnie! Mój program
był (oczywiście! :-) w porządku. System
też nic nie dopisuje przy podglądaniu.
Tyle, że gdy plik jest krótszy niż wysokość
okna, to górną część okna zarówno "more"
jak i "less" pokazuje jako czystą, a plik
umieszcza na dole okna. To wszystko.
To wszystko?! Czyż to nie był okrutny
żart?!!! A ja, frajer, wszystko jedno
z komputerami dalej się zadaję. Głupim.
Pozdrawiam,
Włodek
PS. Gdy pamiętam o kopiowaniu tekstu
do buffera (Ctrl_A+Ctrl_C), to tekst
się ukazuje gładko. Jak zapomnę, to
ciach-fiku-miku, nie ma postu.
To po pierwsze wytłumaczenie, dlaczego czasami mogę zamilknąć na
dłuższy czas,
a po drugie, że jak każde hobby
musi często, niestety, przejść na drugi plan,
a po trzecie, nie jestem mocy w teorii teorii liczb i wybaczcie, że
będe się czasami pytał
o rzeczy, przy których wasze umysły załamywałyby ręce :>>>
OK. No to czym się zajmuję w ramach tego hobby:
Po pierwsze szukam dużych liczb pierwszych, a w zasadzie w obszarze
liczb typu Woodall.
Na 10000000 liczbę Mersenne'a nie poluje, bo tam straszliwa
knkurencja :>
Po drugie, w wolnych chwilach szlifując swoją algorytmikę optymalizuje
programy do
ich wyszukiwania.
Po trzecie czasami pcham - nie wiem nawet czy sensownie - problem
Erdosa dotyczący
roztrzygnięcia rozkladu 4/n. Nawet nie wiem, czy ktoś już tego nie
zrobił i na tym polu
liznę od czasu do czasu coś z teorii liczb.
Do czego mogę się przydać.
1) No przede wszystkim do tego czym zajmuję się zawodowo -
algorytmami a zwłaszcza ich optymalizacją.
Tu widzę, ze dodaliście już trochę kodu. Pozwolę sobie go
przeanalizować właśnie pod tym kątem.
Do czego nie przydam się na pewno:
2) Do rozwijania teorii, bo to Wasza profesja :>>
Przy okazji Włodku włożyłeś tu tabelę liczb barokowych z 1995 roku.
Jest też świeższa, znacznie
pojemniejsza ze stycznia 2006. Już nie aktualna, bo nie ma tam liczby
doskonałej utworzonej na bazie
M32582657. A nie wykluczone, że znalezino jeszcze inne.
Myślę, ze możemy sobie pozwolić na założenie otwartej bazy danych o
liczbach barokowych.
To co jest na stronie Achima to dobry start, Liczby Gik'a stanowią
prawdopodobnie jego podzbiór.
ale możliwe, ze zapodam jakiś skrypt, który to zweryfikuje.
MIędzy czasie utworzyłem już strukturę MySQL-ową, która będzie
nadawała się do przechowywania liczb barokowych
a na pewno zawierać będzie wszystkie dane ze strony Achima, o własnie
tu pytanie do Włodka,
bo kontaktowałeś się w sprawie użycia tej bazy, czy jest zgoda?
Dodam do tego prosty interface który umożliwi nam sprawdzanie, czy to
co zostało znalezione jest znaną już liczbą
barokową.
Aha! "Międzyczasie" dołączyła do nas kolejna osoba :>>
Pozdrawiam
Darek
> a zawodowo zajmuje się implementacją różnorakich
> algorytmów, tworzeniem systemów bazodanowych
> tworzeniem różnego rodzaju interface'ów międzysystemowych
> i razem z małżonką lokalizacją oprogramowania
> na rynek rozyjski i ukraiński.
Ciekawe. I masz szczęście, że pracujesz rodzinnie.
To jest ideał. Bardzo harmonijnie współpracowałem
z moim synem (każdy z nim pracuje harmonijnie).
Stworzył, posiadał i prowadził przez kilka lat firmę,
której technologią była baza danych. Jego głownymi
klientami były instytucje finansowe. Firmę sprzedał,
by wziąć się za nowe wyzwania. Stany (hameryka) są
tak zwariowane, że niestety razem nie pracujemy.
Głównie, bo los w pewnym momencie wtrącił się tragicznie,
gdy stałem się u niego regularnym pracownikiem. Po 3
tygodniach musiałem zrezygnować z powodu nieszczęścia,
niezwiązanego z pracą i firmą. Szkoda.
> nie jestem mocy w teorii teorii liczb i wybaczcie, że
> będe się czasami pytał [...]
Jesteś mocny, skoro tak mocno się zainteresowałeś
i taki kawał orghanizacyjnej roboty odwaliłeś. Bez
motywacji byś tego nie uczynił. Czysto traktowana
informatyka i tak jest matematyką.
> szukam dużych liczb pierwszych, a w zasadzie w obszarze
> liczb typu Woodall.
A co to takiego? Nic, nic, zagoogle'uję.
> Po trzecie czasami pcham - nie wiem nawet czy sensownie
> - problem Erdosa dotyczący roztrzygnięcia rozkladu 4/n.
Zajmowałem się nim trochę, nawet część swoich obserwacji
zamieściłem pod psem. O, chyba teź na swojej htmlowskiej
stronie, chyba tak, muszę ją odnaleźć. Ktoś zrobił więcej,
ale i ciężej, i chyba mniej czytelnie. Koncepcyjnie różnica
nie była zasadnicza. Ten ktoś był przede mną (prawie na pewno).
> Nawet nie wiem, czy ktoś już tego nie
> zrobił i na tym polu liznę od czasu do czasu coś z teorii liczb.
Chyba o takiej sensacji usłyszelibyśmy, nie przegapilibyśmy.
Można zagoogle'ować :-)
> Do czego mogę się przydać.
Ho-ho-ho!!! :-)
> 1) No przede wszystkim do tego czym zajmuję się zawodowo -
> algorytmami a zwłaszcza ich optymalizacją.
> Tu widzę, ze dodaliście już trochę kodu. Pozwolę sobie go
> przeanalizować właśnie pod tym kątem.
Szybko muszę dopisać relatywne rutyny, typu "update",
stosowane przy iteracji. Najpierw napisałem takie, co
liczą od zera, bo są potrzebne w początkowej fazie.
Po pierwszym kroku, te updates będą o wiele szybsze.
> Do czego nie przydam się na pewno:
> 2) Do rozwijania teorii, bo to Wasza profesja :>>
Darku, istnieje coś takiego jak rzeczywistość.
Jak będzie tak będzie, z góry się nie zarzekaj.
Gdy dołożysz cegiełkę do teorii, to wszyscy się
ucieszymy i będziemy z Ciebie dumni. Jak Artur zauważył,
nasz projekt ma dwa skrzydła, matematyczne i komputerowe.
> Myślę, ze możemy sobie pozwolić na założenie
> otwartej bazy danych o liczbach barokowych.
Odczuwam to jako bardzo-bardzo ważne także z
powodów ogólnych, jak zbawianie świata. Bowiem
cała wiedza powinna być bazą danych. Każdy artykuł
w gazecie (elektronicznej) powinien być bazą danych.
Lepiej teraz nie będę się rozpędzał, chę wrócić do
baroku. Ale wspomnę, że od lat chcę rozwinąć projekt,
który obecnie nazywam "daba" (od "DAta BAse"),
którego ważnym składnikiem, także samym w sobie,
jest dabanese czyli nowoczesny miedzynarodowy język
pisany (chiński jest językiem wyłącznie pisanym).
Czy chcielibyście na naszej liście praktykować główne
aspekty dabanese w specjalknym wątku, może więcej
niż w jednym? Tylko główne, bo częścią tego języka
są idegramy, co wymaga grafiki. Zamiast ideogramów,
stosowalibyśmy same rzeczowniki, polskie i angielskie,
wybierając krótsze. Opis języka jest super prosty
(gdy pominąć bardziej zaawansowane konstrukcje).
Łatwo go używać.
> MIędzy czasie utworzyłem już strukturę MySQL-ową, która będzie
> nadawała się do przechowywania liczb barokowych
> a na pewno zawierać będzie wszystkie dane ze strony Achima, o własnie
> tu pytanie do Włodka,
> bo kontaktowałeś się w sprawie użycia tej bazy, czy jest zgoda?
Praw autorskim Achima i Schroeppela nie naruszysz.
Bardzo należy wspomnieć ich zasługi.
> Dodam do tego prosty interface który umożliwi
> nam sprawdzanie, czy to
> co zostało znalezione jest znaną już liczbą
> barokową.
Genialnie. :-) Funkcje, które napisałem też sprawdzają,
bo liczą dwa najprostsze rodzaje "kary". Każda z tych
dwóch kar: (i) liczba niedorekomendowanych czynników
pierwszych (ii) totalna suma niedorekomendowania --
daje 0 dla liczb barokowych, i tylko dla nich. To są proste
sprawy. Pisz tak jak Ci najwygodniej, najnaturalniej.
> Aha! "Międzyczasie" dołączyła do nas kolejna osoba :>>
Myślałem, że chodzi o Pawła. Ale widzę, że Paweł nie jest
już "nowy", bo jest Mirek. Witaj Mirku!
Żeby nie tracić czasu. Mirku, mam do Ciebie probę, którą
mógłbym skierować do wielu entuzjastów programowania
problemów w matematyce. Pod psem nie było atmosfery,
więc piszę to dopiero teraz: przy pisaniu do nas (i w ogóle,
w publicznych wymianach), rozróżniaj bardzo bardzo
wyraźnie, explicite, pomiędzy obserwacjami empirycznymi
i twierdzeniami. Pisz, co jest domysłem, a co jest faktem.
Domysły i obserwacje są cenne, są potrzebne, ale nie wolno
ich formułować jako ogólnych faktów, nie można ich stawiać,
pod względem pewności, na tej samej stopie co twierdzenia.
(Problem ten występował także w przeszłości pod psem,
i czasem psuł mi przyjemność z wspólnego hobby).
Ponadto pod psem nie pytałem Ciebie i Gika o różne
rzeczy, których w Waszych postach nie rozumiałem.
Tutaj mamy roboczą grupę i odczuwam potrzebę
wzajemnego, pełnego rozumienia naszych postów.
Niech każdy każdego pyta bez żenady, miejmy
niewyczerpaną cierpliwość. Udało nam się z Arturem,
z pól roku temu, być cierpliwym na naszej innej,
malutkiej grupie. Dla mnie to ważne, dobrze się dzięki
temu czułem, praca miała sens.
Pozdrawiam,
Włodek
Wróciłem dziś do kodowania -znalazłem w końcu trochę czasu i posunąłem
trochę rzeczy do przodu. Nie wiem jak będzie w tygodniu - chyba gorący
czas w pracy mi się zaczyna.
Natomiast, przeglądając materiał (imponujący już objętościowo)
zgromadzony tutaj, doznałem nieprzyjemnego uczucia pogrążania się w
chaosie. Nie wiem czy to najlepszy wątek by to dusykutować: może
organizycyjny byłby lepszy. Tym niemniej mam pewne propozycje.
1. Kod żródłowy umieszczać w dziale files.
2. W przypadku wielu plików, pakować zipem lub tar-em/gzipem (Włodku -
nie gniewaj sie, ale zdaje się nie mozna tworzyć katakogów a zip
zachowuje ich strukturę, poza tym będzie szybciej raz spakować i
położyć jeden plik).
3. Założyć wątek dyskutujący formaty danych (w szczególności plików
wejściowych i wyjściowych). To ułatwi nam wymiany pomiędzy różnymi
programami.
4. Rezultaty zgodne z formatami danych, podobnie jak w punktach A i B
pakować na pliki
5. Oprócz umieszczanych plików umieszczać tekstowy plik "metryczki" z
opisem co zawiera plik opisywany.
6. Dobrze już opracowaną terminologie, tj. definicje i oznaczenia
zebrać do jednego artykułu.
7. Potrzebujemy chyba osobnego wątku dyskusji funkcji energii. Ja
jakoś zgubiłem oczywistość w tej materii. Temperatura - jest dobrze
przedyskutowana, przestrzeń + ew. tricki z jej ograniczeniem - też.
Ruchy - to już mi się gubi, ale na razie pozostajemy w sferze
najprostszych jak rozumiem. Z funkcjami energii jest chyba najsłabiej.
W szczególności nie mogę jakoś wydedukować jakiej funkcji energii
używał Włodek w swym udanycm eksperymencie.
Oczywiście nie sugeruję, żeby ktoś coś zrobił za mnie. Jeżeli zgodzimy
się na częśc z tych postulatów lub w dyskusji wyjdzie, że są lepsze
pomysły chętnie pomogę w porządkowaniu tego co już mamy.
W szczególności mam jeszcze prośbę: czy Włodku możesz udostępmnić TWR-
a którego używałeś do swoich eksperymentów ?
Pozdrawiam,
Artur
> doznałem nieprzyjemnego uczucia pogrążania się w
> chaosie. Nie wiem czy to najlepszy wątek by to dusykutować:
Do blogu możemy wpisywać wszystko, impulsywnie,
spontanicznie. Dojrzalsze rozważania warto
w specjalnych wątkach.
> 1. Kod żródłowy umieszczać w dziale files.
Jestem za tym. Ale chciałbym bez krępacji czasem
także(!) jako posty, by komunikować się bez ociągania.
Potem można dać kopię jako plik.
> 2. W przypadku wielu plików, pakować zipem lub tar-em/gzipem
> (Włodku - nie gniewaj sie, ale zdaje się nie mozna tworzyć
> katalogów a zip zachowuje ich strukturę, poza tym będzie
> szybciej raz spakować i położyć jeden plik).
Nie gniewam się, ależ skąd, tylko czuję się zagubiony
jako user. Jednak nie jestem pro. Chyba potrafię odzipować.
Nigdy niczego nie zipowałem, tylko kieeeeedyś w pracy.
Ale w pracy, w firmie, obok byli ludzie, których mogłem
męczyć swoimi naiwnymi pytaniami, a na odległość
jest znacznie trudniej. Jeżeli potrafię robić to co
sugerujeszz, to będę, a jak nie, to może będę zamieszczał
niezipowane pliki i mi pomożecie dalej? (Bylem miał
co zamieszczać).
> 3. Założyć wątek dyskutujący formaty danych
> (w szczególności plików wejściowych i wyjściowych).
To jest ekstremalnie ważne. Wspominałem o tym
na naszej liście, choć może nie tak jasno.
> 4. Rezultaty zgodne z formatami danych, podobnie
> jak w punktach A i B pakować na pliki.
> 5. Oprócz umieszczanych plików umieszczać tekstowy
> plik "metryczki" z opisem co zawiera plik opisywany.
Gdy chodzi o kody (programy), to proponuję, żeby
początek pliku zawierał w komentarzu następującą
informację (header):
1. nazwa programu
2. autor i data
3. Cel programu
4. opis formatu inputu i outputu
5. opis zmiennych, arrays, i w ogóle
bazy danych danego programu
6. odnośniki do postów/artykułów, istotnych
dla zrozumienia danego programu (to
jest trochę opcjonalne :-)
Nie ma potrzeby opisywać w headerze
algorytmu. Z opisu bazy danych nie będzie
trudno go samemu zrozumieć. W samym kodzie
można dawać tu i ówdzie komentarz
odnośnie algorytmu. Gdy algorytm nie jest
oczywisty, to i tak wymaga oddzielnego artykułu.
Na przykład wyjaśnienia algorytmu, bazującego
na matematycznym twierdzeniu, nie ma co
wyjaśniać w komentarzach do kodu (wystarczy
odnośnik).
> 6. Dobrze już opracowaną terminologie,
> tj. definicje i oznaczenia zebrać do jednego
> artykułu.
Koniecznie. Oczywiście nie mamy żadnej
administracyjnej dyscypliny, a tylko chęć
wspólgrania. Już tutaj proponuję następujące
elementy bazy danej naszych s.a. algorytmów.
Chwilowo nie zwracam tutaj uwagi na
rozróżnienia pomiędzy int, unsigned, long, etc.
Stosuję int, by zasugerować ogólną kategorię
danych w C++. Poniższe nie oznacza absolutu,
tylko moją sugestię, jak na przykład, by
w jednym przebiegu programu stosować
tylko jedną bazę barokową (i ewentualnie
zredukować ją do TWR; programy mogą też
zakładać, że inputowa baza już jest TWRem;
musi to być wtedy udokumentowane, wraz
z info, czy program sprawdza, że inputowa
baza jest TWRem). Do rzeczy:
// Redukcji początkowej bazy, do bazy
// zredukowanej do TWR, program dokonuje
// co najwyżej raz. (Potem, **ewentualnie**
// (w zależności od podejścia do "ruchów"),
// program może redukować konfiguracje do
// TWRów, ale redukcje konfiguracji nie zmienią
// już ani nośnika bazy prime[supp], ani bazy
// czyli wykladników wkd[supp] -- patrz niżej.
int supp; // liczba liczb pierwszych w początkowej
// bazie barokowej, przed zredukowaniem do TWR.
int pDim; // liczb liczb pierwszych w zredukowanej
// bazie barokowej. Jeżeli startujemy z TWRem, to
// pDim = supp; ogólnie pDim \< supp.
int prime[supp] // (indeksowany) nośnik bazy barokowej,
// podany w rosnącej kolejności: prime[0] < prime [1] < ...
// Po zredukowaniu może się zmniejszyć i zmienić;
// będzie się liczyć tylko część początkowa prime[pDim],
// a dalej będą śmiecie, ale to drobiazg i nieważne (nie
// warto oszczędzać pamięci na prime[supp]). Redukcja
// prime[] może nastąpić w programie tylko raz.
// int wkd[supp] // baza barokowa, indeksowana nie liczbami
// pierwszymi, lecz ich indeksami z prime[], t.zn. wkd[i]
// jest górnym ograniczeniem dla wykładnika liczby prime[i]
// (działamy w przestrzeni konfiguracji C(wkd)). Array
// wkd[supp] może być zredukowny do TWRu wkd[pDim]
// (ale tylko raz; wtedy wkd[i] zawiera śmieć dla i >/ pDim)
int qw[i][v][j]; // rekomendacja liczby pierwszej q := prime[j]
// przez potęgę prime[i]^v liczby pierwszej p := prime[i].
// Przy dowolnie ustalonym indeksie i, wymiar array'u
// qw[i][.][.] powinien być zależny od i: qw[i][wkd[i]+1][pDim],
// by zaoszczędzić pamięć; tym razem jest to istotne.
itd.
> 7. Potrzebujemy chyba osobnego wątku
> dyskusji funkcji energii. Ja jakoś zgubiłem
> oczywistość w tej materii. Temperatura - jest
> dobrze przedyskutowana, przestrzeń + ew. tricki
> z jej ograniczeniem - też.
W praktyce, zwłaszcza przy "silnych" czy "długich"
ruchach, te pojęcia się zlewają. Po prostu możemy
założyć na wyczucie, ile pętli nasz program wykona
przed końcowym czyto optymalizacyjnym finiszem
na metę. Powiedzmy, że wykona 200M pętli lub
przy pewnych warunkach mniej; wtedy zafiniszuje,
robiąc kroki, póki będzie mógł, tylko obniżające
energię (karę). Może nawet wrócić do rekordowego
miejsca, i właśnie to rekordowe zoptymizować też.
A propos, jeżeli program natrafi na baroka, to
go wydrukuje, oraz licznik z powrotem nastawi
na zero. Może kontynuować albo od tego baroka,
albo od losowego miejsca, albo... Ja bym kontynuował
od tego baroka, bo to dla mnie też ciekawe.
> Z funkcjami energii jest chyba najsłabiej.
Gdy się manipuluje pojęciem temperatury, to już
zaczyna się zlewać różne pojęcia. Praktycznie, sam
ustanowisz prawdopodobieństwo zaakceptowania
konfiguracji z wyższą karą od poprzedniej. Na pewno
będzie dążyć do zera przy indeksie pętli dążącej
do oo. Możesz też to prawdopodobieństwo uzależnić
od tego, jak bardzo kara wzrosła -- przy niskiej
temperaturze, czyli przy zaawansowanym indeksie,
możesz niechętniej dopuszczać konfiguracje,
które sporo zwiększają karę. Ba, można nawet
przyjmować konfiguracje zmniejszające karę także
z większym prawdopodobieństwem, gdy ją zmniejszają
o więcej.
Bardzo uważnie należy obserwować efekt długich
kroków (dalekich skoków), by nie wpakować się
w pułapki. Należy się o nie jednak starać, bo cpu
jest bardzo ważne, zwłaszcza dla wielkich baz.
> W szczególności nie mogę jakoś wydedukować
> jakiej funkcji energii używał Włodek w swym
> udanym eksperymencie.
Arturze, moj fragmentaryczny program
tylko losowo wybiera ruchy, nie zważając
na karę. Karę jedynie odnotowywał,
i drukował, gdy malała. Na razie to było
wyczucie i fuks. Wybrałem liczbę barokową
oraz TWR nieco od niej większy. Zaczynałem
orbitę stale od tej liczby barokowej. Po czym
losowo, ale bez względu na karę, buszowała
pod dachem TWRu. Wydawało mi się, że jest
spora szansa na liczby barokowe w pobliżu
(w otoczeniu) ustalonej liczby barokowej.
> W szczególności mam jeszcze prośbę: czy
> Włodku możesz udostępmnić TWR-
> a którego używałeś do swoich eksperymentów ?
Poszukam (:-) i podam w oddzielnym wątku
o formacie plików inputowych, i o ich nazwach.
W ogóle, jestem otwarty, i wszystko stale
bym Wam podawał na gorąco, ale bałem
się, że i tak za dużo daję postów, aż się
krępowalem. Poza tym chciałem unikać
... bałaganu :-)
Teraz można doświadczenia, podobne do mojego,
przeprowadzać z większą tabelą, tę 5000++
liczb barokowych, zamiast z niewielką Gika.
Mnie hamuje brak arytmetyki wielocyfrowej.
Pozdrawiam,
Włodek
I będę miał wreszcie jakieś sensowne archiwum naszych dyskusji :)
Bo interfejs googla doprowadza mnie doszału, np.:
Poszedłem o kawę, wróciłem, kliknąłem i dostałem taki piękny ekran:
We're sorry...
... but your query looks similar to automated requests from a
computer virus or spyware application. To protect our users, we
can't process your request right now.
We'll restore your access as quickly as possible, so try again soon.
In the meantime, if you suspect that your computer or network has
been infected, you might want to run a virus checker or spyware
remover to make sure that ^^^^^^^^^^^^^^^^^^^^^^^^^
your systems are free of viruses and other spurious software.
We apologize for the inconvenience, and hope we'll see you again on
Google.
Po prostu wspaniały interfejs googla jest tak samo intuicyjny i debilny
jak windows. Tego drugiego na szczęście nie używam już prawie 10 lat
(choć niestety, choćby dziś, pomagam kolegom w ich kłopotach z życiem
w czwartym wymiarze).
A z tym pierwszym trzeba jakoś żyć. Choć archiwa grup dyskusyjnych
przeglądam głównie w tekstowym linksie. Ale nie zawsze się da ze
względu na java-script.
Pozdrawiam,
Włodek
On 22 Cze, 22:21, Wlodzimierz Holsztynski <sennaj...@gmail.com> wrote:
> Właśnie ubuntu formatuje mi PC.
> Na śmierć zapomniałem, że miałem
> tam na dysku nieopublikowany
> dowód Hipotezy Riemanna.
>
Nie ma co żałować.
Pewnie wirusy i tak porobiły w nim luki :>
dK
Coś nie tak działa :(
Nie dostałem pierwszego listu z wątku "wybór losowy ...".
Dla testu napiszę dwa nowe wątki "test - Mirek - nie odpowiadać"
Z góry przepraszam za zaśmiecanie.
Mirek
Na ogól pamiętam, żeby asekurować się
za pomoćą Ctrl-A Ctrl C. A jak mi się zapomni,
to system z miejsca się śmieje ze mnie. Ojjjj!
Uuuuuu!!! :-)
Pozdrawiam,
Włodek
On 24 Cze, 22:53, Wlodzimierz Holsztynski <sennaj...@gmail.com> wrote:
> W wątku "Wnioski do sprawdzarki" podałem
> detaliczny, zaawansowany opis tego co
> miąłbym ochotę mieć (zgłosiłem też się
> do pomagania przy czarnej robocie
> wpisywania tego czy owego ręcznie, gdy
> to konieczne). Naharawoałem się jak dziki
> osioł, a system mi to zjadł, tylko się
> oblizał. Odtąd będę pisał w mniejszych
> odcinkach, skoro "muszę" on line.
Ja też to przeszedłem - dlatego przeniosłem się z interfejsu www na
normalny e-mailowy.
PS
Mój wcześniejszy post w tym wątku o problemach z dostarczaniem
wiadomości via e-mail jest nieaktualny - bład był po mojej stronie.
> Naharowałem się jak dziki
> osioł, a system mi to zjadł, tylko się
> oblizał. Odtąd będę pisał w mniejszych
> odcinkach, skoro "muszę" on line.
Zdaje się, że giną posty, które pisane
są przez dłuższy czas (on-line). A więc
te, w ktorych pisanie wkłada się najwięcej
wysiłku. Łatwo wtedy zapomnieć o takim
drobiazgu, jak zrobienie kopii w buforze.
Pozdrawiam,
Włodek
PS. Gdy się odfrustruję, to napiszę jeszcze raz.
PPS. Ubuntu jest przyjemne, ale nie ma g++,
a gcc nie działa jako c++ compiler. Będę
musiał ściagać z sieci. Nic tylko kłopoty,
co za życie... :-)
PPS. Perl, bez żadnych dodatków, rachuje
na liczbach całkowitych aż po 2^49, byle
nie używać "x << a" na mnożenie x przez 2*a,
należy standardowo x *= 2**a. Oczywiste :-)
Niestety tak. Ale to bywa losowo.
> A więc
> te, w ktorych pisanie wkłada się najwięcej
> wysiłku.
:(
> PPS. Ubuntu jest przyjemne, ale nie ma g++,
> a gcc nie działa jako c++ compiler. Będę
> musiał ściagać z sieci. Nic tylko kłopoty,
> co za życie... :-)
A "aptitude install g++" nie działa?
Mirek
> A "aptitude install g++" nie działa?
Działa! Jesteś Mirku niesamowity. Ale mnie
komputery nie lubią i już. Dostałem
wiadomość: Couldn't find package "g+", and
more than forty packages contain "g+" in
their name.
Ale przynajmniej ubuntu niczego nie
zapaskudził, nic nie naśmiecił. Dobre
i to. (Będę musiał połączyć ubuntu
z Internetem).
Dziękuję, pozdrawiam,
Włodek
Bez przesady, po prostu Debiana używam ponad 10 lat.
> Ale mnie
> komputery nie lubią i już.
Eee tam. Po prostu masz pewną "minimalną" instalację. Pewnie na nośniku
niewiele się zmieściło. Na Ubuntu się nie znam, ale to przecież
krewniak Debiana. A Debian to aktualnie "tylko" 3x DVD - to tylko tla
jednej architektury, bez źródeł. Nie chcę nawet myśleć ile zajmuje całe
wydanie Debiana - poprzednie miało około 100 CD :)
> Dostałem
> wiadomość: Couldn't find package "g+", and
A nie miało być: g++
> more than forty packages contain "g+" in
^^^^^^^^^^^^^^^^^^^^^^^^ to jakaś ciekawostka - w moim debianie tego
nie ma.
> their name.
Przynajmniej jest aptitude ;)
Zrobić czynności z punktu 1. ze strony
http://forum.ubuntu.pl/viewtopic.php?p=84541
Nie wiem jak to jest zrobione w Ubuntu, ale ja bym polecił wskazane
wpisy uzupełnić/zamienić na polskie (szybki mirror w Trójmieście):
fragmenty "archive.ubuntu.com" zamienić na "pl.archive.ubuntu.com"
W przypadku uzupełnienia (nie zamiany) jest wysoce wskazane mieć
polskie wpisy przed oryginalnymi - decyduje to o kolejości wybory
serwera.
Następnie:
1) Ściągnąć informacje o istniejących pakietach
aptitude update
2) Ściągnąć aktualizacje już zainstalowanych pakietów (i dokonać
aktualiacji)
aptitude upgrade
Choć ja preferuję najpierw ściąganie (patrzę czy nie ma problemów, jak
są to trzeba przemyśleć), przed "aptitude upgrade" robię najpierw
aptitude -d upgrade
3) Instalowanie nowych pakietów
aptitude install g++
Też często poprzedzam samym ściąganiem: "aptitude -d install g++"
4) Szukanie pakietu gdy zna się cześć jego nazwy (są też inne
możliwości, ale ja jestem konserwatystą cmd-line ;)
dpkg -l 'g++*' lub dpkg -l '*g++*'
a jak nazwy są długie to robię coś w rodzaju:
COLUMNS=160 dpkg -l 'g++*'
> Ale przynajmniej ubuntu niczego nie
> zapaskudził, nic nie naśmiecił. Dobre
> i to.
A dlaczego miałby to zrobić?
> (Będę musiał połączyć ubuntu z Internetem).
Jak widać to tak. Ja poprzednie wersje Debiana z reguły instalowałem z
sieci (dawniej to były 2/3 dyskietki startowe obecnie mini CD), bo
używane przeze mnie mirrory są na ogół szybsze od napędu optycznego.
> > Dostałem
> > wiadomość: Couldn't find package "g+", and
>
> A nie miało być: g++
Wydałem komendę:
sudo aptitude install g++
Po czym ubuntu zażyczył sobie hasła (password)
administracyjnego. Podałem. Po czym uraczyl
mnie negatywną wiadomością, tak jak podałem,
z "g+", a nie "g++".
> Zrobić czynności z punktu 1. ze strony
>
> http://forum.ubuntu.pl/viewtopic.php?p=84541
Spróbuję.
> Nie wiem jak to jest zrobione w Ubuntu, ale ja bym polecił wskazane
> wpisy uzupełnić/zamienić na polskie (szybki mirror w Trójmieście):
> fragmenty "archive.ubuntu.com" zamienić na "pl.archive.ubuntu.com"
Mimo sentymentu, boję się komplikacji
wprowadzania polskiego. Raz tak uczyniłem
z Windows chyba. Same potem kłopoty i cierpienia.
Za słabo się orientuję jako użytkownik. Poza tym
i tak połowa nazw jest po angielsku, i taka mieszanka
prowokuje epilepsję zamiast dostarczyć satysfakcji.
> > Ale przynajmniej ubuntu niczego nie
> > zapaskudził, nic nie naśmiecił. Dobre
> > i to.
>
> A dlaczego miałby to zrobić?
Na ogół moje próby ściągnięcia systemów
z Initernetu kończą się zbędną kupą śmieci
na dysku, z zerową korzyścia. W sumie efekt
jest negatywny. Nie zawsze. Jednak rzadko
uzyskuję sukces. Na ogół tracę czas, friustruję
się i nawet nie wiem jak oczyścić dysk z
naleciałości.
> > (Będę musiał połączyć ubuntu z Internetem).
>
> Jak widać to tak.
Niestety prokrastynuję z załatwieniem
sobie szybszego połączenia. Kiedyś
byłem podłączony do Comcast, ale oni
na górze są biznesowo brudni. Więc
zamiast "cabel" myślę o DSL. Finansowo
to niewielka różnica. Może nawet mógłbym
skasować zwykły telefon, bo mam komórkę,
i wyszedłbym na zero lub na plus.
Najważniejsze obecnie, żebym przełamał
blok i zaczął na całego programować s.a.
Dziękuję, pozdrawiam,
Włodek
PS. Brat mi polecił następujące linki:
https://help.ubuntu.com/7.04/add-applications/C/advanced.html#synaptic
(czyli: http://tinyurl.com/2a7hx6)
https://help.ubuntu.com/7.04/add-applications/C/index.html
(czyli: http://tinyurl.com/ypwhs3)
Ten ostatni jest bazą wyjściową do wszelkich.
Tu nie ma różnicy - wybiera się (oficjalny) najbliższy/najszybszy mirror,
ale ...
Myślałem, że siedzisz po mojej stronie wielkiej wody :)
Więć to nieaktualne.
> wprowadzania polskiego. Raz tak uczyniłem
> z Windows chyba. Same potem kłopoty i cierpienia.
W linuksie nie ma takich problemów. Ten sam program (o ile wspiera dany
język) możesz mieć jednocześnie(!) otwarty w dowolnych wersjach językowych.
Jedyny jaki w ogóle pamiętam, że sprawiał kłopot, to był stary netscape 4.xx
- oczywiście nie wspierał polskiego, ale jak na konsoli było ustawione
LANG=pl_PL to generował piękny postscript z przecinkami zamiast kropek w
liczbach :(
Nie pamiętam już jaki to był program, ale szukając na necie porad do niego
miałem ten program jednocześnie odpalony w językach: polskim, niemieckim,
angielskim i rosyjskim ;)
> Za słabo się orientuję jako użytkownik. Poza tym
> i tak połowa nazw jest po angielsku, i taka mieszanka
> prowokuje epilepsję zamiast dostarczyć satysfakcji.
To i tak lepiej niż, jak "komercyjny" windows wywala komunikaty z drajwera
po chińsku (autentyczny fakt).
> > > Ale przynajmniej ubuntu niczego nie
> > > zapaskudził, nic nie naśmiecił. Dobre
> > > i to.
> >
> > A dlaczego miałby to zrobić?
>
> Na ogół moje próby ściągnięcia systemów
> z Initernetu kończą się zbędną kupą śmieci
> na dysku, z zerową korzyścia.
To jest prawda, dopóki nie masz doświadczenia, to trzymaj się tego co
oferują oficjalne, stabilne repozytoria twoje dystrybucji linuksa - w tym
wypadku Ubuntu.
Niestety, przez najbliższe szereg godzin będę
zajęty czym innym. Pozdrawiam i lecę,
Włodek