Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mnożenie punktów?
Forum PHP.pl > Forum > PHP
spenalzo
Czytam sobie fragment kursu C++ gdzie jest opisany sposób tworzenia fraktali. Chciałem to przenieść do php, ale mam problem, ponieważ w C++ jest moduł który umożliwa mnożenie punktów - complex (czy jakoś tak). Czy jest w php jakiś sposób aby pomnożyć przez siebie punkt? Chodzi o coś takiego:
Kod
x=x*x+c

gdzie c to jakaś ustalona z góry liczba.
Fo
c to z gory ustalona liczba, wiec jesli tak to x tez jest z gory ustalony....
moze chodzi ci o to :
[php:1:c6c1830a7b]$x = 2;
$c = 15;

$x = $x * $x + $c;

echo $x;[/php:1:c6c1830a7b]

zwroci sie 19 czyli tak jak ma byc...
spenalzo
Sorry, trochę niejasno napisałem. Chodzi o punkt na płaszczyźnie czyli (x,y), np. (3,-3).
DeyV
A jaki miałby by być wynik tego działania?
spenalzo
Według tego kursu:

(1,1)*(1,1)=(0,2)
(1,2)*(2,-4)=(10,0)

Cytat
W jaki sposób wyliczyć x*x? Co to wógole znaczy pomnożyć przez siebie punkt? (...) Otóż każdy punkt płaszczyzny wyznacza jednocześnie tak zwaną liczbę zespoloną. Dzięki sprytnemu pomysłowui takie punkty można dodawać, odejmować, ale także mnożyć i dzielić przez siebie, a nawet podnosić do potęgi czy wyciągać z nich pierwiastek. Wynikami wszystkich działań są punkty (...)


Prawie wszystko udało mi się przenieść do php, poza właśnie tymi działaniami...
maggot
potrajktuj to jako liczby zespolone
(a,cool.gif znaczy a+bi, dwie takie liczby mnozysz normalnie, tylko zamieniasz i*i (i² | i do kwadratu) na -1

2 + 5i ≡ (2,5)

(1,1)*(1,1) ≡ (1 + 1i)² = 1 + 2i + i² = 1 +2i -1 = 0 + 2i ≡ (0, 2)

(1,2)*(2,-4)= (1+2i)(2-4i) = 2 - 4i + 4i - 8i² = 2 - 8(-1) = 10 = 10 + 0i ≡ (10,0)
spenalzo
Dzięki za odpowiedź, tylko nie jarzę co to jest to i? I skąd się bierze...
maggot
no coz: i to jest taka liczba, ktora podniesiona do kwadratu daje -1 smile.gif, poszukaj sobie informacji o liczbach zespolonych (nie jest to trudne, na studiach zaraz na poczatku to mielismy)
spenalzo
Znalazłem coś takiego: http://wms.mat.agh.edu.pl/~zrr/zespolone/teoria.htm teraz to analizuję :-)

PS. Ja jeszcze na studiach nie jestem...
spenalzo
Jezu, jakie to popieprzone... Wam to przynajmniej wytlumaczyli. Ale nie poddam się, będę tak długo czytał dopóki nie zrozumiem.
spenalzo
A w jaki sposób uzyskać liczbe zespoloną dla punktu np. (2,1)questionmark.gif?
Ale jak by się dało to na język php prosze :-D
maggot
(2,1) ≡ 2 + i;
i ogolnie
(a,cool.gif ≡ a + bi;
gdzie a i b sa liczbami rzeczywistymi
spenalzo
W sumię pojąłem trochę o co chodzi z tymi liczbami zespolonymi, ale jak to na język php przełożyć, to już nie wiem... Dam sobie spokój i zajmę się czymś pożytecznym.
Dzięki za wyjaśnienie.
maggot
ale to przeciez bardzo proste
(a,cool.gif*(c,d) ≡ (a+bi)(c+di) = (ac - bd) + (ad + bc)i ≡ (ac-bd , ad+bc)

gdzie a, b, c, d to liczby rzeczywiste
spenalzo
Czy o takie coś chodzi?
[php:1:9a5a343ec3]<?php
function mnozenie($a,$b,$c,$d) // a=x1; b=y1; c=x2; d=y2
{
$x=(($a*$c)-($b*$d));
$y=(($a*$d)+($b*$c));
return($x,$y);
}
?>[/php:1:9a5a343ec3]
DeyV
Chyba wszystko ok, tylko... od kiedy return obsługuje dwa argumenty?
Co najwyżej może być tak: return array ($a, $cool.gif;
spenalzo
Oczywiscie niedopatrzenie, tak to jest jak sie pisze post na szybko.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.