Ir para o conteúdo
carcleo

Binômio de Newton

Mensagens Recomendadas

carcleo

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)?

Editado por carcleo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por I-NOZex

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

beat2revolution.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carcleo

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>";

Editado por carcleo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
carcleo

Ta bom obrigado!

Vou deixar como esta.

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

Novamente, muito obrigado a voces.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.