Ir ao conteúdo

Posts recomendados

Postado

Acho que você entendeu bem o lance. 

Acho que é isso mesmo. Mas esse é um problema chato e o enunciado não está muito bom,

 

Você não pode escrever direto ao professor ou TA (monitor, assistente?) ? Não tem algo como um monitor, um cara que ajuda os alunos?

 

Eu entendo que no caso da eleição a chance de B ser eleito ao invés de A é a margem de B mais os votos que eram para A mas deram erro menos os votos de B que deram erro e foram pro outro lado. Ao simular a eleição você tenta se aproximar dessa conta. Fazendo essa conta igual ao total de votos mais 1 você tem uma equação cujo resultado é o valor que Bissecta() deve aproximar.

 

 

 

Postado

@arfneto Eles não conseguiram monitor para esse semestre. Já ouviu falar no IME-USP? Pois então, pedir ajuda ao professor é garantia de tomar um coice daqueles. E falo por experiência própria. 

 

Vou tentar uma última vez, sintetizar suas informações e ver se consigo criar algo. Obrigada mais uma vez!

Postado
8 minutos atrás, Yasmin Martins disse:

Eles não conseguiram monitor para esse semestre. Já ouviu falar no IME-USP? Pois então, pedir ajuda ao professor é garantia de tomar um coice daqueles. E falo por experiência própria

 

Tomar um coice pode ser irrelevante desde que ele te dê uma resposta ... Eu estudei no IME em São Carlos, da USP. A filial. :D 

adicionado 0 minutos depois

Tente escrever uma simulação. É só um loop afinal, e uma tabela pra gravar os valores

Postado

@arfneto Olha, que bacana! Sempre ouvi que São Carlos é ótimo em tudo. Parabéns pela força!

 Na verdade eu não ligaria para o coice se recebesse uma orientação, como você mencionou, mas na prática isso não ocorre. 

 

Eu tenho uma simulação do método da bissecção no papel, e estou tentando desde ontem uma simulação das funções, e mesmo em português não consegui relacionar as coisas. Pode parecer impossível mas estou nesse grau de dificuldade de entender. De qualquer forma, obrigada por tudo @arfneto. 

Postado

Sim. Mas não depende de nada :(

 

Veja esse resultado 

Para 10000 testes e f=0.10 a funcao retornou 934 falhas


Agora umas eleicoes pra ver a mecanica



100 simulacoes
    N = 10000 votantes
    Margem A = 0.51
    Taxa de erro f = 0.01



[   1 de  100]:   91 erros. Media de erros apos    1 eleicoes: 91.000
[   2 de  100]:   85 erros. Media de erros apos    2 eleicoes: 88.000
[   3 de  100]:   99 erros. Media de erros apos    3 eleicoes: 91.667
[   4 de  100]:   98 erros. Media de erros apos    4 eleicoes: 93.250
[   5 de  100]:   96 erros. Media de erros apos    5 eleicoes: 93.800
[   6 de  100]:   83 erros. Media de erros apos    6 eleicoes: 92.000
[   7 de  100]:  105 erros. Media de erros apos    7 eleicoes: 93.857
[   8 de  100]:   98 erros. Media de erros apos    8 eleicoes: 94.375
[   9 de  100]:   98 erros. Media de erros apos    9 eleicoes: 94.778
[  10 de  100]:   90 erros. Media de erros apos   10 eleicoes: 94.300
[  11 de  100]:  107 erros. Media de erros apos   11 eleicoes: 95.455
[  12 de  100]:   96 erros. Media de erros apos   12 eleicoes: 95.500
[  13 de  100]:   83 erros. Media de erros apos   13 eleicoes: 94.538
[  14 de  100]:  106 erros. Media de erros apos   14 eleicoes: 95.357
[  15 de  100]:   96 erros. Media de erros apos   15 eleicoes: 95.400
[  16 de  100]:   98 erros. Media de erros apos   16 eleicoes: 95.563
[  17 de  100]:  103 erros. Media de erros apos   17 eleicoes: 96.000
[  18 de  100]:  100 erros. Media de erros apos   18 eleicoes: 96.222
[  19 de  100]:  117 erros. Media de erros apos   19 eleicoes: 97.316
[  20 de  100]:  102 erros. Media de erros apos   20 eleicoes: 97.550
[  21 de  100]:  102 erros. Media de erros apos   21 eleicoes: 97.762
[  22 de  100]:  119 erros. Media de erros apos   22 eleicoes: 98.727
[  23 de  100]:  114 erros. Media de erros apos   23 eleicoes: 99.391
[  24 de  100]:  109 erros. Media de erros apos   24 eleicoes: 99.792
[  25 de  100]:  111 erros. Media de erros apos   25 eleicoes: 100.240
[  26 de  100]:   94 erros. Media de erros apos   26 eleicoes: 100.000
[  27 de  100]:  103 erros. Media de erros apos   27 eleicoes: 100.111
[  28 de  100]:  101 erros. Media de erros apos   28 eleicoes: 100.143
[  29 de  100]:   88 erros. Media de erros apos   29 eleicoes: 99.724
[  30 de  100]:   99 erros. Media de erros apos   30 eleicoes: 99.700
[  31 de  100]:  103 erros. Media de erros apos   31 eleicoes: 99.806
[  32 de  100]:  100 erros. Media de erros apos   32 eleicoes: 99.813
[  33 de  100]:  103 erros. Media de erros apos   33 eleicoes: 99.909
[  34 de  100]:  110 erros. Media de erros apos   34 eleicoes: 100.206
[  35 de  100]:   92 erros. Media de erros apos   35 eleicoes: 99.971
[  36 de  100]:  106 erros. Media de erros apos   36 eleicoes: 100.139
[  37 de  100]:   92 erros. Media de erros apos   37 eleicoes: 99.919
[  38 de  100]:  101 erros. Media de erros apos   38 eleicoes: 99.947
[  39 de  100]:  103 erros. Media de erros apos   39 eleicoes: 100.026
[  40 de  100]:   97 erros. Media de erros apos   40 eleicoes: 99.950
[  41 de  100]:  100 erros. Media de erros apos   41 eleicoes: 99.951
[  42 de  100]:   88 erros. Media de erros apos   42 eleicoes: 99.667
[  43 de  100]:   87 erros. Media de erros apos   43 eleicoes: 99.372
[  44 de  100]:   91 erros. Media de erros apos   44 eleicoes: 99.182
[  45 de  100]:   99 erros. Media de erros apos   45 eleicoes: 99.178
[  46 de  100]:  101 erros. Media de erros apos   46 eleicoes: 99.217
[  47 de  100]:   96 erros. Media de erros apos   47 eleicoes: 99.149
[  48 de  100]:   99 erros. Media de erros apos   48 eleicoes: 99.146
[  49 de  100]:  111 erros. Media de erros apos   49 eleicoes: 99.388
[  50 de  100]:  105 erros. Media de erros apos   50 eleicoes: 99.500
[  51 de  100]:  105 erros. Media de erros apos   51 eleicoes: 99.608
[  52 de  100]:   96 erros. Media de erros apos   52 eleicoes: 99.538
[  53 de  100]:  101 erros. Media de erros apos   53 eleicoes: 99.566
[  54 de  100]:   98 erros. Media de erros apos   54 eleicoes: 99.537
[  55 de  100]:  102 erros. Media de erros apos   55 eleicoes: 99.582
[  56 de  100]:  106 erros. Media de erros apos   56 eleicoes: 99.696
[  57 de  100]:  112 erros. Media de erros apos   57 eleicoes: 99.912
[  58 de  100]:  119 erros. Media de erros apos   58 eleicoes: 100.241
[  59 de  100]:  102 erros. Media de erros apos   59 eleicoes: 100.271
[  60 de  100]:  103 erros. Media de erros apos   60 eleicoes: 100.317
[  61 de  100]:  105 erros. Media de erros apos   61 eleicoes: 100.393
[  62 de  100]:  101 erros. Media de erros apos   62 eleicoes: 100.403
[  63 de  100]:  106 erros. Media de erros apos   63 eleicoes: 100.492
[  64 de  100]:   86 erros. Media de erros apos   64 eleicoes: 100.266
[  65 de  100]:  107 erros. Media de erros apos   65 eleicoes: 100.369
[  66 de  100]:  103 erros. Media de erros apos   66 eleicoes: 100.409
[  67 de  100]:  103 erros. Media de erros apos   67 eleicoes: 100.448
[  68 de  100]:  102 erros. Media de erros apos   68 eleicoes: 100.471
[  69 de  100]:  112 erros. Media de erros apos   69 eleicoes: 100.638
[  70 de  100]:   87 erros. Media de erros apos   70 eleicoes: 100.443
[  71 de  100]:  101 erros. Media de erros apos   71 eleicoes: 100.451
[  72 de  100]:   97 erros. Media de erros apos   72 eleicoes: 100.403
[  73 de  100]:  114 erros. Media de erros apos   73 eleicoes: 100.589
[  74 de  100]:  104 erros. Media de erros apos   74 eleicoes: 100.635
[  75 de  100]:  100 erros. Media de erros apos   75 eleicoes: 100.627
[  76 de  100]:   97 erros. Media de erros apos   76 eleicoes: 100.579
[  77 de  100]:  106 erros. Media de erros apos   77 eleicoes: 100.649
[  78 de  100]:  107 erros. Media de erros apos   78 eleicoes: 100.731
[  79 de  100]:   91 erros. Media de erros apos   79 eleicoes: 100.608
[  80 de  100]:   97 erros. Media de erros apos   80 eleicoes: 100.563
[  81 de  100]:   97 erros. Media de erros apos   81 eleicoes: 100.519
[  82 de  100]:   90 erros. Media de erros apos   82 eleicoes: 100.390
[  83 de  100]:   96 erros. Media de erros apos   83 eleicoes: 100.337
[  84 de  100]:  103 erros. Media de erros apos   84 eleicoes: 100.369
[  85 de  100]:  111 erros. Media de erros apos   85 eleicoes: 100.494
[  86 de  100]:   93 erros. Media de erros apos   86 eleicoes: 100.407
[  87 de  100]:  103 erros. Media de erros apos   87 eleicoes: 100.437
[  88 de  100]:   95 erros. Media de erros apos   88 eleicoes: 100.375
[  89 de  100]:  106 erros. Media de erros apos   89 eleicoes: 100.438
[  90 de  100]:   99 erros. Media de erros apos   90 eleicoes: 100.422
[  91 de  100]:   95 erros. Media de erros apos   91 eleicoes: 100.363
[  92 de  100]:   97 erros. Media de erros apos   92 eleicoes: 100.326
[  93 de  100]:   69 erros. Media de erros apos   93 eleicoes: 99.989
[  94 de  100]:   89 erros. Media de erros apos   94 eleicoes: 99.872
[  95 de  100]:  116 erros. Media de erros apos   95 eleicoes: 100.042
[  96 de  100]:  105 erros. Media de erros apos   96 eleicoes: 100.094
[  97 de  100]:  105 erros. Media de erros apos   97 eleicoes: 100.144
[  98 de  100]:  115 erros. Media de erros apos   98 eleicoes: 100.296
[  99 de  100]:  108 erros. Media de erros apos   99 eleicoes: 100.374
[ 100 de  100]:  105 erros. Media de erros apos  100 eleicoes: 100.420
Final

 

Para esse programa

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define BISSEC_TOL (1e-6)

void    ativa_sorteador();
double  prob_erro(int, double, double, int);
double  sorteia_real();
int     sorteia_voto_com_falha(double);
int     sorteia_voto_com_falha2(double);


int main(int argc, char** argv)
{
	double f = 0.1;
	int    falhas = 0;
	int    r = 0;
	int    testes = 10000;

	ativa_sorteador();
	for (int i = 0; i < testes; i += 1)
	{
		r = sorteia_voto_com_falha(f);
		if (r != 0) falhas = falhas + 1;
	};
	printf("Para %d testes e f=%4.2f a funcao retornou %d falhas\n",
		testes, f, falhas);

	printf("\n\nAgora umas eleicoes pra ver a mecanica\n\n\n");

	int votantes = 10000;
	double	margemA = 0.51;
	double	falha = 0.01;
	testes = 100;
	double erro = prob_erro(votantes, margemA, falha, testes);
	//printf("prob_erro() retornou %f\n", erro);
	return 0;
};


void ativa_sorteador()
{
#ifdef RANDOM_SEED
	srand(RANDOM_SEED);
#else
	//srand(time(NULL));
	srand(20200805);
#endif
};


double  prob_erro(int N, double a, double f, int T)
{
	/*
	estima a probabilidade de erro de uma eleição com N votantes,
	dos quais uma fração a vota no candidato A, e com probabilidade de
	falha f, utilizando T simulações.Os limites dos parâmetros são
	como no exemplo de entrada e saída
	*/
	int erros = 0;  // erros
	int sim = 0;    // simulacoes
	int v = 0;      // votos

	printf("\n%d simulacoes\n", T);
	printf("    N = %d votantes\n", N);
	printf("    Margem A = %.2f\n", a);
	printf("    Taxa de erro f = %.2f\n\n\n\n", f);

	double grande_total = 0;
	for (int sim = 1; sim <= T; sim += 1)
	{	// executa T simulacoes
		erros = 0;
		for (int v = 0; v < N; v += 1)
		{	// N votos
			if (sorteia_voto_com_falha(f)) erros += 1;
		};
		printf("[%4d de %4d]: %4d erros. ",
			sim, T, erros);
		grande_total += erros;
		printf("Media de erros apos %4d eleicoes: %.3f\n",
			sim, grande_total / sim);
	};	// for()

	printf("Final\n");
	return 1.234;
};

/* devolve um real sorteado uniformemente no intervalo [0,1] */
double sorteia_real()
{
	return (double)rand() / RAND_MAX;
};


int sorteia_voto_com_falha(double f)
{
	return (sorteia_real() < f);
};


int sorteia_voto_com_falha2(double f)
{
	int i = rand() % 100;
	int j = (int)(f * 100);
	return (i < j);
};

 

Veja se entende esse e vai estar bem mais perto do resultado... Rode em sua maquina.

adicionado 12 minutos depois

 

Não sei se estamos nos entendendo. Entendeu que eu acho que o enunciado está errado?

 

Citação

Você não pode escrever direto ao professor ou TA (monitor, assistente?) ? Não tem algo como um monitor, um cara que ajuda os alunos?

 

Eu entendo que no caso da eleição a chance de B ser eleito ao invés de A é a margem de B mais os votos que eram para A mas deram erro menos os votos de B que deram erro e foram pro outro lado. Ao simular a eleição você tenta se aproximar dessa conta. Fazendo essa conta igual ao total de votos mais 1 você tem uma equação cujo resultado é o valor que Bissecta() deve aproximar.

 

O texto não considera o outro lado da história: a mesma taxa de erro se aplica aos eleitores de B e é preciso computar isso lá.

 

Citação

A porcentagem de votantes
no candidato A é a = 51%, porém cada voto pode ser registrado com uma falha da urna, ou seja,
o voto pode ser alterado para o outro candidato com probabilidade de falha f = 5%. As falhas da
urna ocorrem de forma independente para cada votante.

 

Até está escrito lá.

 

Entendeu isso?

Postado
Citação

Observe que sabemos que com probabilidade f = fa = 0 (não há falhas), certamente A ganhará a
eleição. Da mesma forma, se a probabilidade for f = fb = 1, ocorrerá erro, e B vencerá de forma
incorreta

 

:D Estou vendo isso durante o café :D 
 

Isso está errado. f = 1 significa que a urna vai inverter TODOS os votos e isso não quer dizer que "B vencerá de forma incorreta" mas sim que as margens serão invertidas e a eleição vai sempre inverter o vencedor. "O resultado será sempre incorreto" seria o certo de se afirmar.

 

Citação

Este processo é repetido até que a diferença de fa e fb
seja menor que o valor BISEC_TOL.

 

E o cara errou o nome da constante...

Citação

#define BISSEC_TOL (1e-6)

 

Postado
32 minutos atrás, arfneto disse:

 

:D Estou vendo isso durante o café :D 
 

Isso está errado. f = 1 significa que a urna vai inverter TODOS os votos e isso não quer dizer que "B vencerá de forma incorreta" mas sim que as margens serão invertidas e a eleição vai sempre inverter o vencedor. "O resultado será sempre incorreto" seria o certo de se afirmar.

 

 

E o cara errou o nome da constante...

 

 

@arfneto Bom dia! Desculpe-me, ontem acabei caindo de sono. 😞

Muitíssimo obrigada por ter enviado esse código acima. 

Então, eu concordo contigo, sempre vai ser invertido o resultado final. Nesse caso, o que ele deseja que se faça, é que se calcule qual a probabilidade de erro máximo que pode existir que ainda garante que A vença no final. Ele não deseja que B vença. Note que se você olhar o exemplo de entrada e saída, ele induz você a colocar sempre um valor acima de 50% de votos pro candidato A, e você insere o numero de votantes e a maior probabilidade que você deseja que ocorra, para aí ele devolver o numero real de falha.

Eu entendi nesse trecho que fala de probabilidade de fa=0 (A vence) e fb=1(A perde) como sendo 0% de falhas(A se garante) à 100% de falhas (A perdeu). Então o método da bissecção vai calculando a media entre fa e fb (fa=0, fb=1) ->> (0+1)/2 == 0.5, aí esses 0.5 (ponto medio entre fa e fb) serão jogados na prob_erro pra calcular o tal f. Esse valor vai voltar pra bissecta() e aí você compara o q saiu da prob_erro() com o valor da tolerância tol que o usuário inseriu. Entendeu isso?

A bissecta() é que faz o absurdo acontecer, aparentemente. porque ela q dá o f. Vou mandar o trecho de código que eu fiz que capta mais ou menos essa ideia. 

 

Gostaria de lhe perguntar: por exemplo, uma função tem 4 parâmetros, posso eu chama-la em outro lugar utilizando apenas 1 parâmetro? Ex: bissecta() tem 4 parâmetros, posso chama-la em algum lugar utilizando apenas 1 parâmetro? Provavelmente nao ne? Pois o compilador nao saberia qual parâmetro eu estaria substituindo. Pergunto isso pois quando eu fiz esse código abaixo, eu usei apenas o parâmetro tol, e eu nao usei o restante. E pra chamar a prob_erro() eu deveria usar todos, mas eu nao visualizei como inseri-los nesse bloco pra usa-los (N votantes, a porcentagem, T simulações)

 

double bissecta (int N, double a, int T, double tol);
	
	int i;
	double fa = 0, fb = 1, media = 0, pontom;
	
	for(i = 0; i >= ((fa - fb) > BISEC_TOL); i = i+1){
		media = (fa + fb)/2;	// faz a media dos valores
		pontom = media;	// pontom recebe a media pra jogar na funcao prob_erro()
		
		pontom = prob_erro() // como colocar os parametros? 
		
		if(pontom <= (tol)){	// compara o  que saiu de prob_erro() com a tolerância tol
			fa = pontom;	// se estiver abaixo do valor gerado em prob_erro() atualiza fa;
				else{
					fb = pontom;
				}

  

Postado
12 minutos atrás, Yasmin Martins disse:

Então, eu concordo contigo, sempre vai ser invertido o resultado final

 

no caso de f = 1

 

12 minutos atrás, Yasmin Martins disse:

Nesse caso, o que ele deseja que se faça, é que se calcule qual a probabilidade de erro máximo que pode existir que ainda garante que A vença no final

 

dentro de uma certa tolerância tol

 

13 minutos atrás, Yasmin Martins disse:

Note que se você olhar o exemplo de entrada e saída, ele induz você a colocar sempre um valor acima de 50% de votos pro candidato A, e você insere o numero de votantes e a maior probabilidade que você deseja que ocorra, para aí ele devolver o numero real de falha

 

número estimado de falhas, não número real. E não é uma indução, é o objetivo: calcular a possibilidade de uma eleição ter o resultado invertido por excesso de erros da urna. Você poderia calcular com o perdedor. Tanto faz. O que importa é se o resultado foi invertido em relação às margens ou não.

 

16 minutos atrás, Yasmin Martins disse:

uma função tem 4 parâmetros, posso eu chama-la em outro lugar utilizando apenas 1 parâmetro

 

Em C não. Isso se chama polimorfismo e existe em outras linguagens como java e C++

 

18 minutos atrás, Yasmin Martins disse:

eu nao visualizei como inseri-los nesse bloco pra usa-los (N votantes, a porcentagem, T simulações)


Sua dificuldade eu não entendi. Pode tentar explicar de outro modo?

 

17 minutos atrás, Yasmin Martins disse:

Então o método da bissecção vai calculando a media entre fa e fb (fa=0, fb=1) ->> (0+1)/2 == 0.5, aí esses 0.5 (ponto medio entre fa e fb) serão jogados na prob_erro pra calcular o tal f. Esse valor vai voltar pra bissecta() e aí você compara o q saiu da prob_erro() com o valor da tolerância tol que o usuário inseriu. Entendeu isso?

 

Isso é a simples busca binária por um valor no intervalo.

 

Você rodou o programa que te mostrei? Entendeu o código? Não tem nenhuma dúvida?

 

Postado

@arfneto Por que em double  prob_erro(int N, double a, double f, int T) você colocou return 1.234? Não entendo o que isso faz.

E também não entendi o que sorteia_voto_com_falha2() faz.

 

eu nao visualizei como inseri-los nesse bloco pra usa-los (N votantes, a porcentagem, T simulações)

 

A função bissecta() tem 4 parâmetros (N, a, T, tol). Logo, devo fazer algo dentro dela que utilize esses 4 parâmetros, mas só visualizei como utilizar tol. Como eu não posso passar apenas tol como parâmetro pra prob_erro() (seria polimorfismo) como você explicou, significa que minha função bissecta() está longe de estar completa.

Postado
16 minutos atrás, Yasmin Martins disse:

Por que em double  prob_erro(int N, double a, double f, int T) você colocou return 1.234? Não entendo o que isso faz.

 

porque esse é só um trecho de código para mostrar o loop de simulações e o de votos. A mecânica da coisa, como está escrito lá. Não é algo sério. Trata-se de uma constante para ver se você de fato ao menos leu  programa. E você leu!

 

Você rodou o programa?

 

18 minutos atrás, Yasmin Martins disse:

E também não entendi o que sorteia_voto_com_falha2() faz

 

Aí temos um problema mesmo.

 

Essa é precisamente a raiz da solução

 

image.png.09191828a60ed450f164489898a82b0b.png

 

Se
 

image.png.2dc9e0308bf269023e5535a606a741a2.png

 

Então


o tal f da função de sorteio, que é um número entre 0 e 1 também, será menor que esse que veio de sorteia_real() com a probabilidade f. Ou não?

 

E você pode escrever 

int sorteia_voto_com_falha(double f)
{
	return (sorteia_real() < f);
};

porque como eu te expliquei em C ZERO é falso. Te mostrei exemplos também. Então essa função vai retornar zero se sorteia_real() for maior que f.

 

Assim ficaria mais fácil de entender?


int sorteia_voto_com_falha2(double f)
{
	int i = rand() % 100;
	int j = (int)(f * 100);
	if (i < j)
		return 1;
	else 
		return 0;
};

 

 

adicionado 24 minutos depois

faça pequenos programas para você se acostumar com essas coisas

 

		for (int v = 0; v < N; v += 1)
		{	// cada voto
			if (sorteia_real() < a)
			{	// voto em A
				if (!sorteia_voto_com_falha(f))
					votos_em_A += 1;
			}
			else
			{	// voto em B
				if (sorteia_voto_com_falha(f))
					votos_em_A += 1;
			};	// if()
		};	// for() fim da eleicao

Esse loop seria uma eleição computando os votos de acordo com os parâmetros. Pense nisso. Ao final se você tem votos_em_A maior que a metade dos votos, N/2, quer dizer que deu erro

Postado

faça pequenos programas para você se acostumar com essas coisas

 

Pensando de novo no seu programa, entendi que a eleição não é uma simulação de verdade. O valor da margem de A não é uma probabilidade como numa eleição. É um número fixo e isso simplifica umas coisas.

 

Por outro lado devo te lembrar que os valores são baseados em números aleatórios então não vai ter um valor igual aos do enunciado.

 

Ao achar o ponto limite usando a tal bissecta() por outro lado pode conferir usando a mesma função prob_erro() e ver se o valor retornado por bissecta() é mesmo um ponto limite em relação à tolerância...

  • 2 semanas depois...
Postado

@arfneto Será que é possível você me enviar uma mensagem privada e a gente conversar sobre a resolução final do problema? Depois do tanto que você me ajudou, eu gostaria de compartilhar contigo. Nao posso deixar o código inteiro exposto aqui pois alguém pode copiar e eu ser punida por plagio. Obrigada @arfneto!!!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!