Пример #1
0
void	print_result(float *tab, int max)
{
	char	**tmp;
	int		degree;
	char	*reduced_form;

	reduced_form = get_reduced_form(tab, max);
	ft_putstr("\033[4mReduced form:\033[0;0m");
	ft_putendl(ft_strjoin(" ", ft_strjoin(reduced_form, " = 0")));
	tmp = split_str(reduced_form);
	degree = get_degree(tmp);
	ft_putendl(ft_strjoin("Polynomial degree: ", ft_itoa(degree)));
	if (!ft_strcmp(reduced_form, "0"))
		ft_putendl("\033[32mAll real numbers are solution.");
	else if (!check_all_tab(tab, max))
	{
		ft_putendl("\033[31mThere is no solution.");
		return ;
	}
	else if (degree > 2)
		print_error(3);
	else if (degree == 0 || degree == 1)
		print_result3(tab, degree);
	else if (degree >= 2)
		print_result4(tab);
	do_mlx(tab);
}
Пример #2
0
int main()
{
    node_t * root = bitree::read<char>(bitree::CHILD_SIBLING_FORMAT);
    bitree::print(root, bitree::CHILD_SIBLING_FORMAT);
    int d = get_degree(root);
    std::cout << d << '\n';
    bitree::free(root);
    return 0;
}
Пример #3
0
void Polynomial::operator-=(const Polynomial& p)
{
    unsigned dp = p.get_degree();
    unsigned dthis = get_degree();
    auto p_coeffs = p.get_coeffs();
    if(dthis<dp)
        coefficients.resize(p.get_degree()+1, 0.0f);
    std::transform(coefficients.cbegin(), coefficients.cbegin()+dp+1, p_coeffs.cbegin(), coefficients.begin(), std::minus<float>());
}
Пример #4
0
void Polynomial::remove_zeros()
{
    std::size_t idx = get_degree();
    while(coefficients[idx]==0 && idx!=0)
    {
        coefficients.pop_back();
        --idx;
    }
}
Пример #5
0
void input_coef( )
{	
	int i,value;
	
	if ( get_degree( ) == -1 )
  	return ;
  else  
		printf("Please enter the coefficients: ");
		
	for( i = degree; i >= 0; i-- )
   {
       scanf("%d",&value);
       set_coef(i, value);
   } 
}
Пример #6
0
void main( )
{
    init_polynomial( );
  
    while(1){
    	input_degree( );
    	if(get_degree( ) <= -1)
    		break;
    	input_coef( );
    
    	print_polynomial( ); 
    	print_derivative( );
    	
    	clear_polynomial( );
    }
}
void reach_client::print_stats() const
{
    vector<int> stats;
    for (auto it = pgraph_->v_begin(); it != pgraph_->v_end(); ++it)
    {
        size_t degree = it->get_degree();
        if (degree >= stats.size())
            stats.resize(degree + 1, 0);
        ++stats[degree];
    }

    cout << "Degree stats: " << endl;
    for (size_t i = 0; i < stats.size(); ++i)
        if (stats[i] != 0)
            cout << i << ": " << stats[i] << endl;
}
Пример #8
0
void count_vertices_and_edges(int** num_vertices, int** num_edges)
{
	int v, c;
	int* nv = new_int_array(num_components);
	int* ne = new_int_array(num_components);
	
	for (v = 0; v < total_vertices; v++)
	{
		nv[components[v]] += 1;
		ne[components[v]] += get_degree(graph, v);
	}
	
	for (c = 0; c < num_components; c++)
		ne[c] /= 2;
	
	*num_vertices = nv;
	*num_edges = ne;
}
Пример #9
0
void print_polynomial( )
{
   int i;
   if ( get_degree( ) == -1 )
   {
      return ;
   }   
   
   if ( get_degree( ) == 0 )
   {
      printf("The polynomial is %d\n",get_coef(get_degree()));
      return ;
   }   
   
   if ( get_coef(get_degree()) == -1)	
			printf("The polynomial is -x^%d",get_degree());
   else if( get_coef(get_degree()) == 1)
   				printf("The polynomial is x^%d",get_degree());
   			else		
   		    printf("The polynomial is %d x^%d",get_coef(get_degree()),get_degree());
   	
   for (i = get_degree() - 1; i > 1; i--)
   {  	
      if ( get_coef(i) > 0){ 	
      		printf(" + ");  
      	if( get_coef(i) == 1)	
      		printf("x^%d",i);
      	else 
      		printf("%d x^%d",get_coef(i),i);    	
      }else if ( get_coef(i) < 0){ 
      		printf(" - ");
      	if( get_coef(i) == -1)	
      		printf("x^%d",i);
      	else 
      		printf("%d x^%d",-get_coef(i),i);			
      }     		
   }
 
   if( get_coef(i) > 0 ){ 	
      		printf(" + ");  
      	if( get_coef(i) == 1)	
      		printf("x");
      	else 
      		printf("%d x",get_coef(i));    	
   }else if ( get_coef(i) < 0){ 
      		printf(" - ");
      	if( get_coef(i) == -1)	
      		printf("x");
      	else 
      		printf("%d x",-get_coef(i));	
   }	
      
   i--;	   
     		
   if ( get_coef(i) > 0){ 	
      		printf(" + ");  
      		printf("%d",get_coef(i));    	
   }else if ( get_coef(i) < 0){ 
      		printf(" - ");
      		printf("%d",-get_coef(i));			
   }     		
   printf("\n");
}
Пример #10
0
void print_derivative( )
{
	 int i;
   if ( get_degree( ) == -1 )
   {
      return ;
   }   
   
   if ( get_degree( ) == 0 )
   {
      printf("The derivative is %d\n",0);
      return ;
   }   
   
   if ( get_degree( ) == 1 )
   {
      printf("The derivative is %d\n",get_coef(get_degree())*get_degree());
      return ;
   } 
   
   if((get_degree()-1) == 1){
   		if ( get_coef(get_degree()) == -1)	
					printf("The derivative is -%dx",get_degree());
   		else if ( get_coef(get_degree()) == 1)	
   				printf("The derivative is %dx",get_degree());
   		else
   			printf("The derivative is %d x",get_coef(get_degree())*get_degree());
   }else{	
   		if ( get_coef(get_degree()) == -1)	
				printf("The derivative is -%dx^%d",get_degree(),get_degree()-1);
   		else if ( get_coef(get_degree()) == 1)	
   				printf("The derivative is %dx^%d",get_degree(),get_degree()-1);
   		else
   			printf("The derivative is %d x^%d",get_coef(get_degree())*get_degree(),get_degree()-1);
   }	
   
   for (i = get_degree() - 1; i > 2; i--)
   {  	
      if ( get_coef(i) > 0){ 	
      		printf(" + ");  
      	if( get_coef(i) == 1)	
      		printf("x^%d",i);
      	else 
      		printf("%d x^%d",get_coef(i)*i,i - 1);    	
      }else if ( get_coef(i) < 0){ 
      		printf(" - ");
      	if( get_coef(i) == -1)	
      		printf("x^%d",i);
      	else 
      		printf("%d x^%d",-get_coef(i)*i,i -1);			
      }     		
   }
	 
	 if(i == 2){
	 	if ( get_coef(i) > 0){ 	
      		printf(" + ");  
      	if( get_coef(i) == 1)	
      		printf("x");
      	else 
      		printf("%d x",get_coef(i)*i);    	
   	}else if ( get_coef(i) < 0){ 
      		printf(" - ");
      	if( get_coef(i) == -1)	
      		printf("x");
      	else 
      		printf("%d x",-get_coef(i)*i);			
   	} 
       		
   	i--;
   }
      
	 if ( get_coef(i) > 0){ 	
      		printf(" + ");  
      		printf("%d",get_coef(i));    	
   }else if ( get_coef(i) < 0){ 
      		printf(" - ");
      		printf("%d",-get_coef(i));			
   }    
   printf("\n");
}