Compare commits
2 Commits
46abedfd89
...
31843bdcd5
Author | SHA1 | Date |
---|---|---|
Tiago Garcia | 31843bdcd5 | |
Tiago Garcia | 066454b1e3 |
|
@ -0,0 +1 @@
|
||||||
|
peci/
|
Binary file not shown.
|
@ -0,0 +1,21 @@
|
||||||
|
% Matriz 3x10000 em que cada coluna representa uma experiência com os 3
|
||||||
|
% resultados (cada valor está entre 0..1)
|
||||||
|
experiencias = rand(3,10000);
|
||||||
|
% Matriz 3x10000 com valores 1 ou 0 dependente se for maior que 0.5
|
||||||
|
lancamentos = experiencias > 0.5;
|
||||||
|
% Vetor 1x10000 com a soma de cada linha (número de resultados obtidos)
|
||||||
|
resultados = sum(lancamentos,1);
|
||||||
|
% Vetor 1x10000 com 1 se o resultado for 2 (o pretendido)
|
||||||
|
sucessos = resultados == 2;
|
||||||
|
% Determina a % de valores 1
|
||||||
|
P = sum(sucessos) / 10000
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
N = 1e5; % Número de experiências
|
||||||
|
p = 0.5; % prob de cara
|
||||||
|
k = 2; % número de caras
|
||||||
|
n = 3; % número de lançamentos
|
||||||
|
lancamentos = rand(n,N) > p;
|
||||||
|
sucessos = sum(lancamentos) == k;
|
||||||
|
P = sum(sucessos) / N
|
|
@ -0,0 +1,7 @@
|
||||||
|
N = 1e5; % Número de experiências
|
||||||
|
p = 0.5; % prob de cara
|
||||||
|
k = 6; % número de caras
|
||||||
|
n = 15; % número de lançamentos
|
||||||
|
lancamentos = rand(n,N) > p;
|
||||||
|
sucessos = sum(lancamentos) == k;
|
||||||
|
P = sum(sucessos) / N
|
|
@ -0,0 +1,7 @@
|
||||||
|
N = 1e5; % Número de experiências
|
||||||
|
p = 0.5; % prob de cara
|
||||||
|
k = 6; % número de caras
|
||||||
|
n = 15; % número de lançamentos
|
||||||
|
lancamentos = rand(n,N) > p;
|
||||||
|
sucessos = sum(lancamentos) >= k;
|
||||||
|
P = sum(sucessos) / N
|
|
@ -0,0 +1,22 @@
|
||||||
|
function P = ProbCara(nLan, nCara, nExp)
|
||||||
|
lancamentos = rand(nLan, nExp) > 0.5;
|
||||||
|
sucessos = sum(lancamentos) == nCara;
|
||||||
|
P = sum(sucessos) / nExp;
|
||||||
|
end
|
||||||
|
|
||||||
|
function Calc(n, color)
|
||||||
|
span = 1:n;
|
||||||
|
graph = zeros(n, 1);
|
||||||
|
|
||||||
|
for i = 1 : length(span)
|
||||||
|
graph(i) = ProbCara(n, i, 1e5);
|
||||||
|
end
|
||||||
|
|
||||||
|
stem(span, graph, color)
|
||||||
|
end
|
||||||
|
|
||||||
|
hold on
|
||||||
|
Calc(20, 'red')
|
||||||
|
Calc(40, 'blue')
|
||||||
|
Calc(100, 'green')
|
||||||
|
hold off
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,5 @@
|
||||||
|
function P = CalculateProbEqual(partial, total, experiences)
|
||||||
|
results = rand(total, experiences) > 0.5;
|
||||||
|
successes = sum(results) == partial;
|
||||||
|
P = sum(successes) / experiences;
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
function P = CalculateProbMaxEq(partial, total, experiences)
|
||||||
|
results = rand(total, experiences) > 0.5;
|
||||||
|
successes = sum(results) <= partial;
|
||||||
|
P = sum(successes) / experiences;
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
function P = CalculateProbMinEq(partial, total, experiences)
|
||||||
|
results = rand(total, experiences) > 0.5;
|
||||||
|
successes = sum(results) >= partial;
|
||||||
|
P = sum(successes) / experiences;
|
||||||
|
end
|
|
@ -0,0 +1,6 @@
|
||||||
|
function P = CalculateProbMinMaxEq(min, max, total, experiences)
|
||||||
|
results = rand(total, experiences) > 0.5;
|
||||||
|
successes = sum(results) >= min;
|
||||||
|
successes = successes <= max;
|
||||||
|
P = sum(successes) / experiences;
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
a = CalculateProbMinEq(1,2,1e5);
|
||||||
|
d = CalculateProbMinEq(2,2,1e5);
|
||||||
|
e = CalculateProbEqual(1,4,1e5);
|
||||||
|
f = CalculateProbMinMaxEq(1,2,4,1e5);
|
||||||
|
|
||||||
|
fprintf("a) %.3f\n", a)
|
||||||
|
fprintf("d) %.3f\n", d)
|
||||||
|
fprintf("e) %.3f\n", e)
|
||||||
|
fprintf("f) %.3f\n", f)
|
|
@ -0,0 +1,12 @@
|
||||||
|
N = 1e5; % Numero de experiencias
|
||||||
|
|
||||||
|
dardos = randi(100,20,N); % Gerar uma matriz 20xN com cada elemento pertencente [1,100]
|
||||||
|
res = zeros(1, N); % Criar uma matriz linha de 0
|
||||||
|
|
||||||
|
for i = 1:N
|
||||||
|
% unique -> retorna 1 se o campo de dardos selecionado apenas for '1'
|
||||||
|
res(i) = length(unique(dardos(:,i))) == 20; % Verificar para coluna
|
||||||
|
end
|
||||||
|
|
||||||
|
probSimul = sum(res) / N; % Calcular a probabilidade
|
||||||
|
fprintf("Prob. Simulação: %.4f\n", probSimul);
|
|
@ -0,0 +1,12 @@
|
||||||
|
N = 1e5; % Numero de experiencias
|
||||||
|
|
||||||
|
dardos = randi(100,20,N); % Gerar uma matriz 20xN com cada elemento pertencente [1,100]
|
||||||
|
res = zeros(1, N); % Criar uma matriz linha de 0
|
||||||
|
|
||||||
|
for i = 1:N
|
||||||
|
% unique -> retorna 1 se o campo de dardos selecionado apenas for '1'
|
||||||
|
res(i) = not(length(unique(dardos(:,i))) == 20); % Verificar para coluna
|
||||||
|
end
|
||||||
|
|
||||||
|
probSimul = sum(res) / N; % Calcular a probabilidade
|
||||||
|
fprintf("Prob. Simulação: %.4f\n", probSimul);
|
|
@ -0,0 +1,45 @@
|
||||||
|
N = 1e5; % Numero de experiencias
|
||||||
|
dArr = 10:10:100;
|
||||||
|
|
||||||
|
|
||||||
|
prob_array = zeros(length(dArr), 1);
|
||||||
|
for d = 1:length(dArr)
|
||||||
|
dardos = randi(1000,dArr(d),N);
|
||||||
|
res = zeros(1,N);
|
||||||
|
|
||||||
|
for i = 1:N
|
||||||
|
res(i) = not(length(unique(dardos(:,i))) == dArr(d));
|
||||||
|
end
|
||||||
|
|
||||||
|
prob = sum(res) / N;
|
||||||
|
|
||||||
|
prob_array(d) = prob;
|
||||||
|
end
|
||||||
|
|
||||||
|
subplot(2,1,1);
|
||||||
|
plot(dArr, prob_array, "-o");
|
||||||
|
title('m = 1000');
|
||||||
|
xlabel('Numero de dardos');
|
||||||
|
ylabel("Probabilidade");
|
||||||
|
grid on
|
||||||
|
|
||||||
|
prob_array = zeros(length(dArr), 1);
|
||||||
|
for d = 1:length(dArr)
|
||||||
|
dardos = randi(100000,dArr(d),N);
|
||||||
|
res = zeros(1,N);
|
||||||
|
|
||||||
|
for i = 1:N
|
||||||
|
res(i) = not(length(unique(dardos(:,i))) == dArr(d));
|
||||||
|
end
|
||||||
|
|
||||||
|
prob = sum(res) / N;
|
||||||
|
|
||||||
|
prob_array(d) = prob;
|
||||||
|
end
|
||||||
|
|
||||||
|
subplot(2,1,2);
|
||||||
|
plot(dArr, prob_array, "-o");
|
||||||
|
title('m = 100000');
|
||||||
|
xlabel('Numero de dardos');
|
||||||
|
ylabel("Probabilidade");
|
||||||
|
grid on
|
|
@ -0,0 +1,24 @@
|
||||||
|
N = 1e5; % Numero de experiencias
|
||||||
|
m = [200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000];
|
||||||
|
|
||||||
|
prob_array = zeros(1, length(m));
|
||||||
|
for i = 1:length(m)
|
||||||
|
m_value = m(i);
|
||||||
|
dardos = randi(m_value,100,N);
|
||||||
|
res = zeros(1,N);
|
||||||
|
|
||||||
|
for j = 1:N
|
||||||
|
res(j) = not(length(unique(dardos(:,j))) == 100);
|
||||||
|
end
|
||||||
|
|
||||||
|
prob = sum(res) / N;
|
||||||
|
|
||||||
|
prob_array(i) = prob;
|
||||||
|
end
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(m, prob_array, "-o");
|
||||||
|
title('Muitos graficos');
|
||||||
|
xlabel('Numero de alvos');
|
||||||
|
ylabel("Probabilidade");
|
||||||
|
grid on
|
|
@ -0,0 +1,26 @@
|
||||||
|
N = 500;
|
||||||
|
T = 1000;
|
||||||
|
n_keys = 10;
|
||||||
|
prob_array = zeros(1,n_keys);
|
||||||
|
|
||||||
|
for n = 1:n_keys
|
||||||
|
prob = 0;
|
||||||
|
for i = 1:N
|
||||||
|
hash_exp = randi([0,T-1],n,T);
|
||||||
|
colisions = 0;
|
||||||
|
for j = 1:T
|
||||||
|
if n > length(unique(hash_exp(:,j)))
|
||||||
|
colisions = colisions + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
prob = prob + colisions / T;
|
||||||
|
end
|
||||||
|
prob_array(n) = prob / N;
|
||||||
|
end
|
||||||
|
|
||||||
|
fprintf("a) = %.4f\n", prob_array(10));
|
||||||
|
|
||||||
|
plot(1:n_keys, prob_array, "-o")
|
||||||
|
title("Ex3 b)");
|
||||||
|
xlabel("Numero de keys");
|
||||||
|
ylabel("Prob. de colisao");
|
|
@ -0,0 +1,25 @@
|
||||||
|
N = 50;
|
||||||
|
T = 100:100:1000;
|
||||||
|
n_keys = 50;
|
||||||
|
prob_array = zeros(1,length(T));
|
||||||
|
|
||||||
|
for i = 1:length(T)
|
||||||
|
t = T(i);
|
||||||
|
prob = 0;
|
||||||
|
for n = 1:N
|
||||||
|
hash_exp = randi([1,t-1],n_keys,t);
|
||||||
|
colisions = 0;
|
||||||
|
for j = 1:t
|
||||||
|
if n_keys > length(unique(hash_exp(:,j)))
|
||||||
|
colisions = colisions + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
prob = prob + colisions / t;
|
||||||
|
end
|
||||||
|
prob_array(i) = prob / N;
|
||||||
|
end
|
||||||
|
|
||||||
|
plot(T, prob_array, "-o")
|
||||||
|
title("Ex3 c)");
|
||||||
|
xlabel("Tamanho do array");
|
||||||
|
ylabel("Prob. de colisao");
|
|
@ -0,0 +1,17 @@
|
||||||
|
function n = Calc(p)
|
||||||
|
N = 1e5;
|
||||||
|
for pessoas = 2 : 366
|
||||||
|
a = randi(365, pessoas, N);
|
||||||
|
for i = 1:N
|
||||||
|
res(i) = length(unique(a(:, i))) < pessoas;
|
||||||
|
end
|
||||||
|
prob = sum(res)/N;
|
||||||
|
if (prob > p)
|
||||||
|
n = pessoas;
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
fprintf("a) = %.4f\n", Calc(0.5))
|
||||||
|
fprintf("b) = %.4f\n", Calc(0.9))
|
|
@ -0,0 +1,46 @@
|
||||||
|
N = 1e5;
|
||||||
|
p_paridade = 0.5;
|
||||||
|
lancamentos = 2;
|
||||||
|
num_faces = 6;
|
||||||
|
p_serX = 1/6;
|
||||||
|
|
||||||
|
rolls = randi(num_faces, lancamentos, N);
|
||||||
|
|
||||||
|
soma9 = 0;
|
||||||
|
soma = sum(rolls);
|
||||||
|
for i = 1 : N
|
||||||
|
if soma(i) == 9
|
||||||
|
soma9 = soma9 + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
p_a = soma9/N;
|
||||||
|
|
||||||
|
soma_par = 0;
|
||||||
|
roll2 = rolls(2 : N+1);
|
||||||
|
for i = 1 : N
|
||||||
|
if mod(roll2(i), 2) == 0
|
||||||
|
soma_par = soma_par + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
p_b = soma_par/N;
|
||||||
|
|
||||||
|
ser5 = 0;
|
||||||
|
for i = 1 : N
|
||||||
|
if rolls(1, i) == 5 || rolls(2, i) == 5
|
||||||
|
ser5 = ser5 + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
p_c = ser5/N;
|
||||||
|
|
||||||
|
diff1 = 0;
|
||||||
|
for i = 1 : N
|
||||||
|
if rolls(1, i) ~= 1 && rolls(2, i) ~= 1
|
||||||
|
diff1 = diff1 + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
p_d = diff1/N;
|
||||||
|
|
||||||
|
fprintf("P(A) = %.4f\n", p_a)
|
||||||
|
fprintf("P(B) = %.4f\n", p_b)
|
||||||
|
fprintf("P(C) = %.4f\n", p_c)
|
||||||
|
fprintf("P(D) = %.4f\n", p_d)
|
|
@ -0,0 +1 @@
|
||||||
|
personal_cybersecurity_map-pt.xlsx
|
Loading…
Reference in New Issue