tikky
11.02.2009, 14:08:39
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ą.
JoShiMa
11.02.2009, 15:03:04
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ć.
tikky
11.02.2009, 15:20:27
No tyle to ja też wiem, ale co dalej jak nie wyjdzie jakaś ogrągła wartość.
mike
11.02.2009, 15:30:18
Cytat(tikky @ 11.02.2009, 15:20:27 )

No tyle to ja też wiem, ale co dalej jak nie wyjdzie jakaś ogrągła wartość.
No to
zaokrąglasz.
Kurcze, kilka podstawowych operacji matematycznych i problem.
tikky
11.02.2009, 15:35:11
Spokojnie. Ale jak zaokrągle to mi usunie za dużo.
phpion
11.02.2009, 15:36:55
Cytat(tikky @ 11.02.2009, 17:35:11 )

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.
flashdev
11.02.2009, 16:02:57
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>
tikky
11.02.2009, 21:15:34
Dokładnie o takie coś mi chodziło :-)
A w czym to napisane jest? javascript?
flashdev
11.02.2009, 23:39:19
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).
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.