![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Załóżmy że chcę mieć dwie tablice jednakowej długości. Jedna zawiera 127 elementów a druga np. 86. Jak napisać taką funkcję, która potrafiła by przyciąć a właściwie może lepszym określeniem będzie skonsolidować tablicę do wartości mniejszej czyli 86 w tym akurat wypadku. Chodzi o to, aby nie obcinać wartośc z końca lub początku natomiast wyciąć co którąś wartość. W innym przypadku gdy mniejsza miała by 50 a większa 100 było by to proste - wystarczyło by wyciąć co drugą. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
oblicz sobie stosunek mniejszej do wiekszej i będziesz widział co którą wartość wyciąć. Jak wyjdzie 1/3 to wycinasz z dłuższej co trzecią, jak wyjdzie 1/5 to co piątą. Jak wyjdzie 2/5 to wycinasz dwie na pięć, ale jak to juz sam musisz zdecydować.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
No tyle to ja też wiem, ale co dalej jak nie wyjdzie jakaś ogrągła wartość.
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Spokojnie. Ale jak zaokrągle to mi usunie za dużo.
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Spokojnie. Ale jak zaokrągle to mi usunie za dużo. Masz przecież do wyboru zaokrąglenie w górę (ceil" title="Zobacz w manualu PHP" target="_manual) oraz w dół (floor" title="Zobacz w manualu PHP" target="_manual) więc wybierz to, które jest dla ciebie lepsze. Ten post edytował phpion 11.02.2009, 15:37:09 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Kod <script>
function k(len0, len1){ lMin=Math.min(len0, len1) lMax=Math.max(len0, len1) sum=0 deleted=0 for(i=0;i<lMax;i++){ if(Math.round(sum)==i){ document.write("delete "+i+" <br />") deleted++; sum+=lMax/(lMax-lMin) } } document.write("deleted: "+deleted+" == abs(size1 - size2) == "+(lMax-lMin)) } k(127, 86) </script> |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie o takie coś mi chodziło :-)
A w czym to napisane jest? javascript? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Nie ma za co.
Jest to javascript bo tak mi było wygodniej. Przy usówaniu elementów na bieżąco nie zapomnij o przesówaniu wskaźnika (zamiast: i wtedy będzie: i-deleted). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:48 |