Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kalkulator - Symbol Newtona (co tu dodać, gdzie jest błąd)
Bluur
post 9.02.2015, 16:38:44
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.06.2014

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


Hej. Chcę zrobić kalkulator Symbolu Newtona.
plik index.php przechodzi do newton.php po wpisaniu w 2 pola dwóch liczb.

Wzór na to jest taki:
Wiadomo wpisuję w pola "n" i "k" liczby i liczy mi z tego.

INDEX:

  1. Podaj wartosci aby obliczyc liczbe newtona..<br>
  2. <form action="newton.php" method="post">
  3.  
  4. <input type="text" name="n" size=10 maxlength="10">
  5. <br>
  6. <input type="text" name="k" size=10 maxlength="10">
  7.  
  8. <input type="submit" size=10 maxlength="10">


a PHP

  1.  
  2.  
  3. <?php
  4. $n = $_POST['n'];
  5. $k = $_POST['k'];
  6. $odp = ("$n! / $k! * $n - $k");
  7. $silnia = 1;
  8. for ($i=1; $i<=$n; $i++) {
  9. $silnia *= $i;
  10. }
  11. echo ("liczba newtona <br>");
  12. echo ("jest równa: $odp");
  13. ?>
  14. </body>
  15. </html>

I tutaj mam problem. Wyrażenie jest takie: n!/k!(n-k)! i jak to zapisać w kodzie ? Nie wiem po prostu jak zapisać takie działanie. smile.gif
Czy mógłbym prosić o rozwiązanie tego? Zrozumiem odrazu w czym jest błąd jak dostałbym poprawioną. smile.gif

Ten post edytował Bluur 9.02.2015, 16:39:19
Go to the top of the page
+Quote Post
Kshyhoo
post 9.02.2015, 17:29:55
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Nie wiesz, jak policzyć silnię w PHP?


--------------------
Go to the top of the page
+Quote Post
NoSleep2
post 8.05.2015, 14:36:16
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 8.05.2015

Ostrzeżenie: (10%)
X----


To tak jak ja widze te rozwiązanie, toche jest długie ;/
  1. <form Action = '' Method=POST>
  2. n= <input type='text' name='n'/>
  3. k= <input type='text' name='k'/>
  4. <input type="submit" value= "wylicz">
  5. </form>

  1. <?php
  2. $n = $_POST['n']; // liczba n
  3. $k = $_POST['k']; // liczba k
  4. $c = ($_POST['n']-$_POST['k']); // roznica n i k (n-k)
  5. if($_POST['n'] < $_POST['k']){
  6. echo('Liczba k musi być mniejsza bądź równa n');
  7. } else {
  8. $silnia = 1;
  9. $silnia1 = 1;
  10. $silnia2 = 1;
  11. for ($i=1; $i<=$n; $i++) { // wyliczenie dla n!
  12. $silnia *= $i;
  13. }
  14. for ($o=1; $o<=$k; $o++) { // wyliczenie dla k!
  15. $silnia1 *= $o;
  16. }
  17. for ($w=1; $w<=$c; $w++) { // wyliczenie dla wyniku roznicy (n-k)!
  18. $silnia2 *= $w;
  19. }
  20.  
  21. $wynik= $silnia/*n*/ / $silnia1/*k*/ * $silnia2/*n-k*/;
  22. echo ('wynik symbolu_netwona = '.$wynik);
  23. echo ('<br>n = '.$n.'! = '.$silnia.' <br>');
  24. echo ('k = '.$k.'! = '.$silnia1.' <br>');
  25. echo ('n-k = '.$c.'! = '.$silnia2.' <br>');
  26. }
  27. ?>

Działa sprawdzałem smile.gif

Ten post edytował NoSleep2 8.05.2015, 15:17:15
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
sadistic_son
post 8.05.2015, 14:52:55
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(NoSleep2 @ 8.05.2015, 15:36:16 ) *
Działa sprawdzałem smile.gif

Dla n<0 i/lub k<0 również? tongue.gif O ile dobrze pamiętam z liceum (ale głowy nie daję) to n nad k może przyjmować też wartości ujemne jak i ułamkowe, w ogóle chyba liczby rzeczywiste. Jeśli tak jest to Twój kod tego nie zrealizuje.

Ten post edytował sadistic_son 8.05.2015, 14:55:09


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Ether
post 8.05.2015, 14:57:52
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 21.03.2015

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


  1. <?php
  2. // class.factorial.php
  3. class factorial {
  4. private $result = 1;
  5. private $number;
  6.  
  7. function __construct($number) {
  8. $this->number = $number;
  9. for($i=2; $i<=$number; $i++) {
  10. $this->result *= $i;
  11. }
  12. }
  13.  
  14. public function showResult() {
  15. echo "Silnia liczby {$this->number} wynosi {$this->result}. ";
  16. }
  17. }
  18. ?>


Ten post edytował Ether 8.05.2015, 14:59:25
Go to the top of the page
+Quote Post
NoSleep2
post 8.05.2015, 15:10:44
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 8.05.2015

Ostrzeżenie: (10%)
X----


sprawdź kod potem pisz wink.gif co ja pamiętam,z technikum które skończyłem, n i k należą do liczb całkowitych smile.gif
0<K<N
Nie obliczysz silni z ujemnych wartości N bądź K.
Silnia:
np:
5! = 1*2*3*4*5 = 120

Cytat(Ether @ 8.05.2015, 15:57:52 ) *
  1. <?php
  2. // class.factorial.php
  3. class factorial {
  4. private $result = 1;
  5. private $number;
  6.  
  7. function __construct($number) {
  8. $this->number = $number;
  9. for($i=2; $i<=$number; $i++) {
  10. $this->result *= $i;
  11. }
  12. }
  13.  
  14. public function showResult() {
  15. echo "Silnia liczby {$this->number} wynosi {$this->result}. ";
  16. }
  17. }
  18. ?>


ładna obiektówka, ale to tylko sam wynik z silni, a On pyta o wynik symolu Netwona

Ten post edytował NoSleep2 8.05.2015, 15:24:58
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: 24.04.2025 - 06:21