Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
Python ::: Itertools ::: Iteradores de Combinação e Permutação |
Como gerar permutações de uma string em Python usando o objeto permutations do módulo ItertoolsQuantidade de visualizações: 1173 vezes |
|
Nesta dica mostrarei como podemos usar o objeto permutations do módulo Itertools para gerar as permutações simples de uma string. Na permutação simples, quando os elementos não se repetem, a quantidade de conjuntos gerados a partir do conjunto analisado equivale a n!, onde n é a quantidade de elementos no conjunto a partir do qual a permutação ocorrerá. Dessa forma, para a palavra LOTE, a quantidade de permutações possíveis (sem repetição) é 4! = 24. Veja o código Python completo que gera as permutações simples para a palavra LOTE:
# vamos importar o objeto permutations do Itertools
from itertools import permutations
def main():
# palavra contendo os caracteres que queremos
# gerar a permutação. Veja que não vamos usar
# caracteres repetidos
palavra = "LOTE"
# agora obtemos uma lista com as permutações possíveis
permutacoes = [''.join(p) for p in permutations(palavra)]
# e mostramos o resultado
print("As permutações para a palavra {0} são:\n".format(palavra))
print(permutacoes)
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: As permutações para a palavra LOTE são: ['LOTE', 'LOET', 'LTOE', 'LTEO', 'LEOT', 'LETO', 'OLTE', 'OLET', 'OTLE', 'OTEL', 'OELT', 'OETL', 'TLOE', 'TLEO', 'TOLE', 'TOEL', 'TELO', 'TEOL', 'ELOT', 'ELTO', 'EOLT', 'EOTL', 'ETLO', 'ETOL'] |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de Java - Como simplificar frações em JavaQuantidade de visualizações: 959 vezes |
|
Pergunta/Tarefa: Simplificar uma fração consiste em reduzir o numerador e o denominador por meio da divisão pelo máximo divisor comum aos dois números. Uma fração está totalmente simplificada quando verificamos que seus termos estão totalmente reduzidos a números que não possuem termos divisíveis entre si. Uma fração simplificada sofre alteração do numerador e do denominador, mas seu valor matemático não é alterado, pois a fração, quando tem seus termos reduzidos, torna-se uma fração equivalente. Escreva um programa Java que pede para o usuário informar o numerador e o denominador de uma fração e mostre a fração simplificada. Use uma classe Fracao para a operação de simplificação. Em outras seções do nosso site você encontra o cálculo do MDC para encontrar o Máximo Divisor Comum. Sua saída deverá ser parecida com: Informe o numerador: 32 Informe o denominador: 40 A fração gerada foi: 32/40 A fração simplificada é: 4/5 Veja a resolução comentada deste exercício em Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar o numerador
System.out.print("Informe o numerador: ");
int numerador = Integer.parseInt(entrada.nextLine());
// vamos pedir para o usuário informar o denominador
System.out.print("Informe o denominador: ");
int denominador = Integer.parseInt(entrada.nextLine());
// vamos criar um objeto da classe Fracao
Fracao f = new Fracao(numerador, denominador);
// vamos mostrar a fração gerada
System.out.println("A fração gerada foi: " + f.toString());
// agora vamos simplificar esta fração
System.out.println("A fração simplificada é: " +
f.simplificar().toString());
}
}
// classe usada para representar uma Fração
class Fracao{
int numerador;
int denominador;
// construtor da classe
public Fracao(int numerador, int denominador) {
this.numerador = numerador;
this.denominador = denominador;
}
// método que simplifica a fração atual e retorna o
// resultado como uma fração
public Fracao simplificar(){
// cria uma fração temporária
Fracao temp = new Fracao(this.numerador, this.denominador);
// descobrimos que é maior, o numerador ou o
// denominador
int n = temp.numerador, d = temp.denominador, maior;
// o numerador é menor que 0?
if (temp.numerador < 0) {
n = -temp.numerador;
}
// descobrimos o maior
if (n > d) {
maior = n;
}
else {
maior = d;
}
// encontramos o maior número que divide o numerador e o
// denominador
int mdc = 0;
for (int i = maior; i >= 2; i--) {
if ((temp.numerador % i == 0) && (temp.denominador % i == 0)) {
mdc = i;
break;
}
}
// agora dividimos tanto o numerador quanto o denominador
// pelo mdc encontrado
if (mdc != 0) {
temp.numerador = temp.numerador / mdc;
temp.denominador = temp.denominador / mdc;
}
// retorna a fração temporária
return temp;
}
// retorna uma representação textual dessa fração
@Override
public String toString() {
return this.numerador + "/" + this.denominador;
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como testar se um número é positivo ou negativo em JavaQuantidade de visualizações: 13920 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro. Em seguida seu código deverá informar se o número informado é positivo, negativo ou neutro. O zero não é um número positivo nem negativo, já que não é maior nem menor que si mesmo. Por essa razão dizemos que ele é um número neutro. Sua saída deve ser parecida com: Informe um número inteiro: 3 O número 3 é positivo. Informe um número inteiro: -5 O número -5 é negativo. Informe um número inteiro: 0 O número 0 é neutro. Veja a solução comentada deste exercício usando a linguagem Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos ler o número
System.out.print("Informe um número inteiro: ");
int numero = Integer.parseInt(entrada.nextLine());
// o número é positivo?
if(numero > 0){
System.out.println("O número " + numero + " é positivo.");
}
// o número é negativo?
else if(numero < 0){
System.out.println("O número " + numero + " é negativo.");
}
else{ // o número é neutro
System.out.println("O número " + numero + " é neutro.");
}
}
}
|
C ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é primo em CQuantidade de visualizações: 2956 vezes |
|
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos. É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par. Veja agora um código C completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int numero, i;
int primo = 1; // verdadeiro, true
// vamos solicitar um número inteiro positivo
printf("Informe um número inteiro positivo: ");
scanf("%d", &numero);
// o número é negativo?
if(numero < 0){
printf("Número inválido.\n\n");
}
// é 0 ou 1?
else if((numero == 0) || (numero == 1)){
printf("Número válido, mas não é primo.\n\n");
}
// passou até aqui. Vamos testar se o número é primo
else{
for (i = 2; i <= (numero / 2); i++){
// se passar no teste, não é primo
if (numero % i == 0) {
primo = 0; // recebe false
break;
}
}
if(primo){
printf("O número informado é primo\n\n");
}
else{
printf("O número informado não é primo\n\n");
}
}
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Informe um número inteiro positivo: 9 O número informado não é primo |
LISP ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MMC em Lisp - Como calcular o Mínimo Múltiplo Comum na linguagem LispQuantidade de visualizações: 1113 vezes |
|
O Mínimo Múltiplo Comum (MMC), ou LCM (Least Common Multiple) é um tipo de operação matemática utilizada para encontrar o menor número positivo, diferente de 0 (zero), que é múltiplo ao mesmo tempo de dois ou mais números. O MMC é utilizado, por exemplo, na soma e subtração de frações - quando é necessário um denominador comum. Nesta dica mostrarei como podemos calcular o MMC de dois números inteiros informados pelo usuário. Veja o código Common Lisp completo:
; variáveis que vamos usar no programa
(let ((num1)(num2)(maior)(mmc))
; Vamos ler o primeiro número
(princ "Informe o primeiro número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num1
(setq num1 (read))
; Vamos ler o segundo número
(princ "Informe o segundo número: ")
; talvez o seu compilador não precise disso
(force-output)
; atribui o valor lido à variável num2
(setq num2 (read))
; agora escolhemos o maior número
(cond ((> num1 num2)(setq maior num1))
(t (setq maior num2))
)
; e entramos em um laço loop
(loop
; testa se o maior é divisível por num1 e por num2
(cond ((and (= 0 (rem maior num1))(= 0 (rem maior num2)))
; mmc recebe o maior e sai do laço
(setq mmc maior)(return)))
; incrementa o valor da variável maior
(setq maior (+ maior 1))
)
; mostra o resultado
(format t "O MMC dos dois números é ~D" mmc)
)
Ao executarmos este código Common Lisp nós teremos o seguinte resultado: Informe o primeiro número: 6 Informe o segundo número: 3 O MMC dos dois números é: 6 Note que a linguagem Common Lisp possui uma função LCM() que permite calcular o MMC de dois ou mais números. Minha intenção com essa dica foi mostrar como o cálculo do MMC é feito em Common Lisp. |
Veja mais Dicas e truques de LISP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






