Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wykonywanie działania z losowaniem
Giluś
post 20.03.2011, 20:07:27
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Cześć chciałbym wykonać skrypt który będzie mi obliczał moje liczby ( również z przecinkami np 1,3 , 10,300000 ) + będzie losował jeszcze cyfry... Stworzyłem taki kod ale wyświetla mi tylko 3 wyniki a z moich przedziałów liczbowych jest na pewno więcej..

  1. <form action="" method="post">
  2.  
  3. <li>
  4. <label for="name">Liczba D</label>
  5. <input name="d" type="text" value="<?php echo $_POST['d'] ?>"/>
  6. </li>
  7. <li>
  8. <label for="name">Liczba B</label>
  9. <input name="b" type="text" value="<?php echo $_POST['b'] ?>"/>
  10. </li>
  11. <li>
  12. <label for="name">Liczba C</label>
  13. <input name="c" type="text" value="<?php echo $_POST['c'] ?>"/>
  14. </li>
  15. <li>
  16. <label for="name">Liczba X</label>
  17. <input name="x" type="text" value="<?php echo $_POST['x'] ?>"/>
  18. </li>
  19. <li>
  20. <label for="name">Liczba Y</label>
  21. <input name="y" type="text" value="<?php echo $_POST['y'] ?>"/>
  22. </li>
  23. <input type='submit' value='Wynikuj'/>
  24. </form>
  25. <?php
  26. if(!empty($_POST)){
  27. $d = $_POST['d'];
  28. $b = $_POST['b'];
  29. $c = $_POST['c'];
  30. $x = $_POST['x'];
  31. $y = $_POST['y'];
  32.  
  33. if ($y < $x) {echo "Liczba Y musi być większa od liczby X";}
  34. else $losowanie = rand($y,$x);
  35.  
  36. $liczenie = $b + $c;
  37. $liczeniee = $liczenie / 3;
  38. $liczenien = $d * $liczeniee;
  39. $liczeniek = $liczenien * $losowanie;
  40.  
  41. echo "Wynik: ".$liczeniek."";
  42.  
  43.  
  44. }
  45. ?>



Tak wygląda cały kod i wstawiłem cyfry takie jak:
D: 2
B: 3
C: 4
X: 10.3
Y: 14.8
i losuje mi liczby tylko takie:
1. 65.3333333333
2. 56
3. 60.6666666667

A ja bym chciał aby brało pod uwagi ( w losowaniu ) wszystkie możliwe cyfry z przedziału 10.3 do 14.8
10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12.0 - itd, itp

Jak można takie coś osiągnąć ?






Go to the top of the page
+Quote Post
Blame
post 20.03.2011, 20:09:46
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Tak na szybko: mt_rand wink.gif


--------------------
Go to the top of the page
+Quote Post
Giluś
post 20.03.2011, 20:44:55
Post #3





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Zamieniłem rand na mt_rand jednak to nic nie pomogło

Nie zauważyłem ze złe ustawiłem rand zaczynałem od większej liczbie a kończyłem na mniejszej...
Ale przy użyciu pętli for ( do testowania jakie liczby wyjdą ) polazło się takie coś:

10.3
11.3
12.3
13.3
14.3

przy takim kodzie
  1. for( $x = $x; $x <= $y; $x++ )
  2. echo $x." <br />";


Jak zrobić aby wyświetlało 0.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12.0 - itd, itp - tak jak wcześniej to już napisałem
Go to the top of the page
+Quote Post
Ilware
post 21.03.2011, 00:22:56
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

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


Nie do końca wiem czy o to Ci chodzi ale po prostu wynik z rand zaokrąglij funkcją http://pl.php.net/manual/pl/function.round.php do jednego miejsca po przecinku

Ten post edytował Ilware 21.03.2011, 00:24:34


--------------------
Jeżeli pomogłem kliknij "Pomógł" :)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:11