Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] rozbijanie liczby na godziny
szybki
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


  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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
olszam
post
Post #2





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

Ostrzeżenie: (0%)
-----


może tak

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


Go to the top of the page
+Quote Post
mmmmmmm
post
Post #3





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  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. }
Go to the top of the page
+Quote Post
szybki
post
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


@olszam - jest problem, ponieważ suma tych wartości nie jest równa 1500
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Pyton_000 13.06.2018, 11:28:03
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #6





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Przepraszam, że zrozumiałem..
Go to the top of the page
+Quote Post
szybki
post
Post #7





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

Ostrzeżenie: (0%)
-----


Ż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ą
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:style_emoticons/default/wink.gif)
Skoro godziny maja byc suma maksymalnej wartosci to logiczne ze zadna z nich nie moze byc od niej wieksza...
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #9





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


@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ą.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@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 (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:49