Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] rozbijanie liczby na godziny
Forum PHP.pl > Forum > Przedszkole
szybki
  1. $max = 1500;
  2. $hour = [8,9,10,11,12,13,14,15,16,17,18,19,20,21,22];


Jak zrobić, aby każda godzina miała losową wartość, ale tak, aby razem nie przekraczały liczby maksymalnej?
olszam
może tak

  1. for($i=0; $i<15;$i++){
  2. $hour[$i] =[8+$i,rand(0,1500)];
  3. }


mmmmmmm
  1. $i=-1;
  2. $count=count($hour);
  3. $l=[];
  4. foreach($hour as $h)
  5. {
  6. $l[]=rand(1, $max - array_sum($l) -($count - $i++));
  7. }
szybki
@olszam - jest problem, ponieważ suma tych wartości nie jest równa 1500
Pyton_000
Cytat(szybki @ 13.06.2018, 09:02:34 ) *
Jak zrobić, aby każda godzina miała losową wartość, ale tak, aby razem nie przekraczały liczby maksymalnej?

Więc naucz się formułować pytania.
mmmmmmm
Przepraszam, że zrozumiałem..
szybki
Żle napisałem, chodzi o to aby wartości w tablicy dla danej godziny nie przekraczały maksymalnej wartości, ale jednocześnie wszystkie godziny były jej sumą
nospor
Cytat
nie przekraczały maksymalnej wartości, ale jednocześnie wszystkie godziny były jej sumą

Nie tworz zbednych warunkow bo tylko zaciemniasz opis i nawet mmmmmmm ktory byl pewien ze zrozumial okazuje sie ze nie zrozumial wink.gif
Skoro godziny maja byc suma maksymalnej wartosci to logiczne ze zadna z nich nie moze byc od niej wieksza...
mmmmmmm
@nospor - mylisz się. Zrozumiałem dokładnie, tak jak było napisane pierwotnie. Czyli "tak, aby razem nie przekraczały liczby maksymalnej".
Mój kod to spełnia. Po dojściu warunku dodatkowego "jednocześnie wszystkie godziny były jej sumą", wystarczy niewielka zmiana w kodzie, by ostatni element był różnicą.
nospor
@mmmmmm napisales po poscie:
"jest problem, ponieważ suma tych wartości nie jest równa 1500"
ze zrozumiales a nadal sie odnosiles do pierwszego posta mimo ze w kolejnym byl UPDATE wink.gif

Ja rozumiem ze twoj post kod byl odpowiedzia na pierwszy post. Chodzi o kolejne posty autora i twoj.
Ale nie zrozum mnie zle. Ja naprawde nie mialem na mysli nic zlego wspominajac o tobie. Ot chcialem pokazac autorowi jak bardzo miesza i ludzie podaja rozwiazania nie na to co chcial
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.