Jump to content
Carlos Rocha

Binômio de Newton

Recommended Posts

Carlos Rocha

Pessoal,

Bom Dia!

Comecei desenvolver para fins de aprendizado o código abaixo com finalidade de mostrar o desenvolvimento em forma de Binômio de Newton. Do tipo (a + b)^n.

Mas também, o código deverá ser capaz de calcular o Binômio.

Acontece que, pelo meu código, eu coloquei como exemplo (x + 3)³ para testar com x como texto. Mas, não sei porquê, o php esta calculando x elevado a alguma coisa.

Em que será que errando no meu raciocínio?

Segue o código:

  
<?php
error_reporting(E_ALL);
function fatorial_x($numero)
{
 if($numero >= 0)
 {  
$fatorial = 1;
for($k = 1; $k <= $numero; $k++)
$fatorial *= $k;
return $fatorial;  
 }
 return 0;
}
?>

<?php
function desdobra_binomio($expoente, $primeiro_elemento, $segundo_elemento)
{
 $total = 0;
 $total_texto = "";
 $expoente_ida=0;
 $expoente_volta=$expoente;

 for ($i=0; $i<=$expoente; $i++)
 {
if($i==0)
{
$expoente_ida=0;
$expoente_volta=$expoente;
}

$combinacao=0;
  $combinacao_texto="";
$total=0;
$total_texto="";

$combinacao = fatorial_x($expoente)/(fatorial_x(($expoente_volta))* fatorial_x($expoente_ida));
$combinacao_texto = fatorial_x($expoente).'/('.(fatorial_x(($expoente_volta)).'*'. fatorial_x($expoente_ida)).')';
$total += $combinacao * pow($primeiro_elemento, $expoente_volta) * pow($segundo_elemento,$expoente_ida);
$total_texto .= $combinacao_texto ."*". pow($primeiro_elemento, $expoente_volta) ."*". pow($segundo_elemento,$expoente_ida);

if($i<$expoente)
{
$total+=
$total_texto.=" + ";
}

//print pow($segundo_elemento,$expoente_ida)."<br>";
print $total_texto." ";

  $expoente_ida++;
$expoente_volta--;


 }
 //return $total_texto;
}
print  desdobra_binomio(3,'x',3);
?>  

E, aproveitando o tópico, como exibir os números em forma de fração (um número debaixo do outro. E, em forma de potencia ( u número elevado ao outro)?

Edited by carcleo

Share this post


Link to post
Share on other sites
I-NOZex

E, aproveitando o tópico, como exibir os números em forma de fração (um número debaixo do outro. E, em forma de potencia ( u número elevado ao outro)?

frações em 3 formas diferentes:

html style: http://changelog.ca/log/2008/07/01/writing_fractions_in_html

mathML style: http://stackoverflow.com/a/10081414

jquery style: http://stackoverflow.com/a/13879171

para fazeres a potencia de a^b, fica:

a<sup>b</sup>

mais info: http://www.cs.tut.fi/~jkorpela/math/

http://www.w3.org/TR/MathML2/chapter2.html

Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
Carlos Rocha

Desculpe pela distração e obrigado.

Mas, a forma como a fração esta sendo exibida, não esta legal não.

Tem como a fraçao sair desse modelo?

1

______

1 -2 + 3

Ou seja, numerador e denominador centralizados e a barra posta abaixo do numerador e não do lado?

Pois, como o denominador é grande, os próximos números estão saindo assim:

3!((3- 0)! * 0!)*x3 * 30

Tumultuados.

A ideia é:

3!((3- 0)! * 0!)

vezes esse

x3

vezes esse

30

$combinacao_texto = '<sup>'.$expoente.'!</sup>⁄<sub>(('.$expoente.'- '.$expoente_ida.')! * '. $expoente_ida.'!)</sub>';

$total_texto .= $combinacao_texto ."*".$primeiro_elemento."<sup>".$expoente_volta."</sup> * ". $segundo_elemento."<sup>".$expoente_ida."</sup>";

Edited by carcleo

Share this post


Link to post
Share on other sites
HappyHippyHippo

em qual dos links dizia para apresentares as fracções dessa forma ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Carlos Rocha

existe <sub> ou <sup> similar que faz número ficar abaixo/acimo de outro em HTML?

Share this post


Link to post
Share on other sites
Carlos Rocha

Ta bom obrigado!

Vou deixar como esta.

Para o propósito que esta sendo criado dá para entender.

Novamente, muito obrigado a voces.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.