poniedziałek, 25 lutego 2013

Panspermia

Wiemy, że niektóre prokarionty, a nawet organizmy wielokomórkowe, potrafią przetrwać w skrajnych warunkach panujących w przestrzeni kosmicznej. Niektórzy naukowcy wysnuli więc hipotezę tzw. panspermii, wg. której życie na Ziemi przywędrowało z kosmosu.

Hipoteza ta nie wyjaśnia rzecz jasna pochodzenia życia jako takiego, a jedynie skąd życie wzięło się na planecie Ziemia. Problem z tą hipotezą jest jednak taki, że tak po prawdzie ona niczego nie wyjaśnia. Nie wiemy co prawda, jak powstało życie na Ziemi, ale nie znamy również żadnych dowodów ani argumentów przemawiających za panspermią, dlatego wyrzucanie tego pytania w kosmos niczego nie zmienia, a jedynie komplikuje niepotrzebnie całą zagadkę. Poza tym posiadamy już całkiem niezłe pojęcie, w jaki życie mogło powstać (podpowiedź: nie potrzeba żadnych cudów-niewidów), co czyni tę hipotezę zupełnie zbędną i jeszcze mniej prawdopodobną (szczególnie, że w naszym układzie Ziemia jest jedynym znanym obiektem, na którym istnieje życie).

Okazuje się jednak, że odwrotna hipoteza panspermii - mówiąca o tym, że życie które powstało na Ziemi mogło zawędrować na inne planety układu słonecznego, jest całkiem prawdopodobna.

Niedawno natrafiłem na ciekawy artykuł, w którym autor szczegółowo opisuje wyliczenia naukowców dotyczące prawdopodobieństwa trafienia kawałków Ziemi (powstałych wskutek uderzenia olbrzymiej asteroidy) na różne obiekty układu słonecznego. Okazuje się, że szanse na to, że coś zawierającego ziemskie żyjątka trafi na Marsa, czy nawet do Unii Europejskiej na Europę są naprawdę duże.

Oczywiście inna sprawa, czy na tych ciałach życie, jeśli już tam jakoś dotrze, będzie się mogło rozwijać. Każdego zainteresowanego odsyłam z resztą do wspomnianego artykułu, w którym można przeczytać więcej ciekawych rzeczy.


Do poczytania

sobota, 23 lutego 2013

Generator liczb losowych: losowanie z przetasowaniem

Niezależnie od tego, jak dobrego generatora liczb pseudolosowych używamy, zawsze chcielibyśmy, aby te liczby były jeszcze bardziej losowe.

Czytając kiedyś książkę o sieciach neuronowych natknąłem się na modyfikację standardowego generatora, która używała dodatkowej tablicy, w której przechowywane były kolejne wyniki ze standardowego generatora i z której pobierane były „losowo” wyniki owego ulepszonego generatora.

W tekście nie wyjaśniono dlaczego tak, a nie inaczej, ale dano wskazówkę, gdzie szukać. W „The Art of Computer Programming” Donalda Knutha (cz. 2) można znaleźć algorytm, który w teorii powinien polepszać losowość praktycznie rzecz biorąc dowolnego generatora liczb pseudolosowych (nawet takiego niezbyt dobrego).

Polega on na tym, że otrzymane z generatora liczby wrzuca się do tablicy o dowolnej wielkości (*), po czym się te liczby tasuje - z tym że oczywiście można to tasowanie przeprowadzać na bieżąco (por. losowanie z koszyka).

(*) - Na ogół dla wygody przyjmuje się wielkość około 100, we wspomnianej książce o sieciach neuronowych autor przyjął wielkość 97.

Opis algorytmu wygląda tak:

  1. Wypełnij tablicę V[] o rozmiarze k kolejnymi liczbami pseudolosowymi.
  2. Przypisz do zmiennej Y kolejną wylosowaną liczbę.
  3. Wylosuj indeks j w tablicy V[]: j=k*Y/m; gdzie m - moduł w generatorze liczb pseudolosowych (maksymalna możliwa do wylosowania liczba + 1).
  4. Wyciągnij z tablicy V[] element na pozycji j i przypisz do zmiennej Y: Y=V[j];
  5. Wstaw na miejsce wyciągniętego elementu V[j] nową liczbę losową.
  6. Zwróć liczbę losową ze zmiennej Y.

wtorek, 19 lutego 2013

Mikołaj Kopernik

Mikołaj Kopernik (1473 - 1543)
Autor: nieznany (public domain).
Źródło: Wikipedia.

19 lutego 1473r. w Toruniu urodził się jeden z najsławniejszych naukowców i ogólnie ludzi, Mikołaj Kopernik. Dzisiaj obchodzimy 540-tą rocznicę tego wydarzenia.

Nie zamierzam się dużo o nim rozpisywać - w internecie można znaleźć dosyć wyczerpujących materiałów. Chciałbym tylko wspomnieć z okazji jego urodzin o jego najbardziej znanych osiągnięciach i o tym, co mi się z nim najbardziej kojarzy.

Przede wszystkim Kopernik jest znany ze swojego dzieła pod tytułem „De revolutionibus orbium coelestium” czyli o obrotach sfer niebieskich. W książce tej zawarł wykład na temat heliocentryzmu.

Jak na tamte czasy był to wielki przewrót światopoglądowy i książka ta z miejsca uznana została za herezję . Najpierw próbowano zmieniać jej wymowę(*) i pomniejszać jej znaczenie, aby wpisać ją później (1616r.) do Indeksu ksiąg zakazanych. „O obrotach...” zostało usunięte z Indeksu dopiero w 1835r.

(*) - Że to „tylko teoria” służąca do wygodnego opisu matematycznego ruchu planet (oprócz Ziemi). Gdzieś już coś takiego słyszałem...

sobota, 16 lutego 2013

Generator liczb losowych: losowanie z koszyka

Zwykła funkcja losująca (random()) zwraca liczby, które są (w teorii) niezależne od tego, co wylosowało się wcześniej. Oznacza to, że czasem możemy otrzymać długie serie tych samych liczb, co często jest niepożądane. Stosuje się różne techniki, aby temu zapobiegać.

Jedną z najprostszych jest losowanie „z koszyka” - losujemy liczbę z pewnego zestawu, wyciągamy ją z tego zestawu i odkładamy na bok. Gdy zestaw zrobi się pusty, wkładamy z powrotem wszystkie liczby do zestawu i powtarzamy całą procedurę od nowa. Przypomina to trochę wyciąganie kul / kartek z numerami z koszyka / urny itp.

W praktyce nie musimy oczywiście implementować tego dokładnie w taki sposób. Przestawiona niżej funkcja losuje liczbę z tablicy z zadanymi wartościami, zmniejszając za każdym razem zakres losowania i wyrzucając wylosowaną liczbę poza ten zakres.

//Jakiś zestaw liczb, może być wpisany na sztywno
//albo generowany w programie.
int zestawLiczb[iloscLiczb];

//Zakres bieżącego losowania.
//Początkowo losujemy z całego zestawu.
int zakresLosowania=iloscLiczb;

int losujLiczbe(void)
{
  int i, x;

  //losujemy liczbę z zakresu losowania, zmniejszając zakres
  i=random(zakresLosowania);
  zakresLosowania--;
  x=zestawLiczb[i];

  //wyrzucamy wylosowaną liczbę poza nowy zakres losowania
  //zamieniając ją z (pierwszą) liczbą spoza tamtego zakresu
  zestawLiczb[i]=zestawLiczb[zakresLosowania];
  zestawLiczb[zakresLosowania]=x;
  if(zakresLosowania==0) zakresLosowania=iloscLiczb;

  //zwacamy wylosowaną liczbę
  return x;
}

Tego typu losowanie przydaje się na przykład w grach. Szczerze mówiąc na algorytm ten natrafiłem, gdy szukałem informacji na temat Tetrisa, który w taki właśnie sposób generuje nowe klocki.

W serii TGM zastosowano metodę generowania „przyjaznych” sekwencji klocków polegającą na tym, że przechowuje się w historii 4 ostatnio wylosowane klocki. Program następnie losuje klocek tak długo, aż trafi na jakiś spoza historii (losuje z trzech pozostałych).

czwartek, 14 lutego 2013

Mit płaskiej ziemi

Niedawno obejrzałem sobie film pt. „Ancient Aliens Debunked”(*), z którego dowiedziałem się, tak jakby mimochodem, bardzo ciekawej rzeczy.

(*) - Film ów krytykuje pewien dokument wyemitowany na History Channel (!) w którym zwolennicy tzw. paleoastronautyki za pomocą przekłamań, totalnych kłamstw oraz argumentów z ignorancji starali się przekonać widzów, że starożytne cywilizacje miały kontakty z kosmitami. Film przydługawy (3 godziny), ale podzielony wygodnie na krótkie części (w postaci linków w opisie). Gorąco polecam każdemu (pod sam koniec autor traci jakby swoje racjonalne podejście do omawianego tematu, ale absolutnie nie psuje to całości).

Flammarion, rycina z 1888 roku
przedstawiająca podróżnika wystawiającego głowę
poza sklepienie niebieskie.
Autor: anonimowy (public domain).
Źródło: Wikipedia.

Powszechnie sądzimy, że ludzie w średniowieczu uważali, iż Ziemia jest płaska. Otóż nic bardziej mylnego! Oczywiście - wśród zwykłych ludzi taki pogląd mógł być nawet bardzo rozpowszechniony, ale wśród ludzi wyedukowanych dominował pogląd, że Ziemia ma kształt kuli. Wiedza ta pochodziła, jak można się domyślać, z badań greckich uczonych (np. Eratostenesa, który jako pierwszy obliczył obwód Ziemi). Co ciekawe, zdawano sobie w pełni sprawę z konsekwencji kulistości naszej planety (np. z istnienia różnych stref czasowych).

wtorek, 12 lutego 2013

Karol Darwin

Karol Darwin w wieku 45 lat.
Autorzy: Henry Maull, John Fox
(public domain). Źródło: Wikipedia.

204 lata temu urodził się Karol Darwin (1809 - 1882) - jeden z najsławniejszych i uznawany za jednego z największych naukowców na świecie. Jako pierwszy(*), razem z Alfredem Russelem Wallace'em, wyjaśnił zjawisko ewolucji proponując jako główny jej mechanizm dobór naturalny.

(*) - Teoria Darwina nie była pierwszą próbą wyjaśnienia mechanizmów ewolucji. Przed Darwinem wielu jeszcze uczonych próbowało rozwiązać tę zagadkę. Na szczególną uwagę zasługuje teoria Lamarcka, która była pierwszą pełną i naukową teorią ewolucji. Teoria Darwina była jednak pierwsza, która w miarę poprawnie wyjaśniała fenomen ewolucji biologicznej.

Znany jest nie tylko z tego, że zaproponował swoją teorię ewolucji. Każdy, kto choć trochę o nim słyszał, wie z pewnością o podróży statkiem Beagle, w czasie której dokonał wielu odkryć oraz zgromadził materiały dowodowe mające poprzeć jego teorię. Był obeznajmiony nie tylko z biologią, ale również z geologią (i wieloma innymi dziedzinami wiedzy), co z pewnością pomagało mu w karierze naukowej.

Najbardziej chyba znana
karykatura Karola Darwina.
Autor: nieznany (public domain).
Źródło: Wikipedia.

Wiekopomnym dziełem Darwina była książka: „O powstawaniu gatunków”, ale nie był to jego jedyny wkład w rozwój nauki. Oprócz napisania innych książek dotyczących ewolucji Darwin prowadził również liczne badania z dziedziny zoologi, botaniki czy ekologii.

Zaproponowana przez Darwina teoria była tak radykalna, że niektórzy ludzie z powodów ideologicznych odrzucają ją do dziś. Jak można się spodziewać, ludzie tacy zamiast odpierać argumenty na rzecz wspomnianej teorii wolą uciekać się do oszczerstw. I tak - Darwin był oskarżany o bycie rasistą, o to, że jego teoria była źródłem nazistowskich zbrodni itp. Co ciekawe, ci sami ludzie często powtarzają plotkę, jakoby Karol Darwin nawrócił się na łożu śmierci (*) - nie mogąc się najwyraźniej zdecydować, czy wolą przeciągnąć wielkiego naukowca „na swoją stronę”, czy zdemonizować go jako „swojego wroga”.

(*) - Miałoby to w jakiś dziwny sposób być dowodem na to, że teoria ewolucji jest fałszywa.

sobota, 2 lutego 2013

Grawitacja Ziemi

W poprzednim artykule liczyłem grawitację jednolitej kuli i sfery. A co jeśli dany obiekt nie jest jednolity? Jeśli składa się z różnych materiałów o różnej gęstości?

Przykładem takiego obiektu jest Ziemia, która składa się z warstw o różnym składzie chemicznym i o różnej gęstości - co więcej, gęstość każdej warstwy zmienia się w zależności od głębokości.

Warstwagrubość (km)promień
zewnętrzny
gęstość (g/cm3)
dolnagórna
Skorupa3063702,92,2
Płaszcz górny69063404,43,4
Płaszcz dolny217056505,64,4
Jądro zewnętrzne2260348012,29,9
Jądro wewnętrzne1220122013,112,8
Struktura Ziemi. Źródło: The interior of the Earth by Eugene C. Robertson.
Zmniejszyłem grubość płaszcza górnego, ponieważ suma przekraczała średnicę Ziemi, poza tym grubość płaszcza górnego znacząco odbiegała od wartości znalezionych na Wikipedii. Pozwoliłem też sobie zaokrąglić nieco podane wartości. Nie powinno mieć to jednak większego znaczenia dla potrzeb tego artykułu.

Zanim odpowiem na to pytanie, przytoczę parę wniosków z poprzedniego artykułu:

  1. Grawitację na zewnątrz kuli / sfery możemy liczyć tak jakbyśmy liczyli grawitację punktu materialnego.
  2. Grawitacja wewnątrz kuli w odległości od środka równej r może być liczona jako grawitacja na powierzchni wewnętrznej części kuli o promieniu r - gdyż warstwy nad tym punktem tworzą sferę, w związku z czym nie wnoszą nic do wynikowej grawitacji.

Czyli aby obliczyć grawitację wewnątrz Ziemi w punkcie r, musimy wiedzieć ile wynosi masa wyciętej z Ziemi kuli o promieniu r.

piątek, 1 lutego 2013

Grawitacja kuli i sfery

Jak obliczyć grawitację punktu materialnego wie chyba każdy - nawet jeśli nie pamięta szczegółów, to wie że jest jakiś tam prosty wzór:

Fg = G M m r2

Trochę gorzej już z grawitacją kuli. Nie wiem, jak jest teraz, ale gdy ja chodziłem do szkoły nie uczono nas o tym, że grawitacja wewnątrz jednolitej kuli spada liniowo do zera(*) w środku kuli (to że w samym środku powinno być zero, można było się domyślić samemu).

ag m r

Na zewnątrz kuli grawitacja spada zgodnie z klasycznym wzorem Newtona.

(*) - Przeczytałem o tym kiedyś w jakimś zestawie ćwiczeń - nie pierwszy taki przypadek, kiedy dowiedziałem się czegoś interesującego i względnie ważnego nie z podręczników, które są chyba z roku na rok coraz bardziej okrajane, tylko skądś indziej. Postanowiłem więc napisać program symulujący grawitację kuli. Wyniki które otrzymałem potwierdzały to, co przeczytałem.

Liniowy spadek grawitacji wewnątrz kuli wynika z ogólnych praw grawitacji i udowodnienie tego wykracza poza moje umiejętności. Dlatego po prostu zakładam, że skoro inni to udowodnili, tak jest faktycznie i bazując na tym fakcie chcę tylko wyprowadzić o własnych siłach wzór na grawitację wewnątrz sfery. Można by też pójść w drugą stronę, ale nie ma to dla potrzeb tego artykułu żadnego znaczenia.

Dokładny wzór (na stałą) można wyprowadzić sobie samemu zauważając, że wartość siły musi zmieniać się płynnie (nie może być przeskoków) - więc wartość siły z jednego wzoru i drugiego w punkcie r=R (promienia kuli) musi być identyczna:

a = G m R2 = C m R

gdzie C - niewiadoma stała. To daje nam

C = G R3

czyli grawitacja wewnątrz kuli jest równa

a = G m r R3

gdzie R - promień danej kuli.