Skip to content

Instantly share code, notes, and snippets.

View thbighead's full-sized avatar

Thales Nathan thbighead

  • Brazil, Rio de Janeiro
View GitHub Profile
@thbighead
thbighead / transpor_digrafo.py
Created April 17, 2017 02:48
Calcular a transposicao de um digrafo feito com Python
def transpor_digrafo(digrafo):
digrafo_t = {}
for vertice in digrafo:
digrafo_t[vertice] = []
for vertice in digrafo:
for vizinho in digrafo[vertice]:
digrafo_t[vizinho].append(vertice)
return digrafo_t
@thbighead
thbighead / k_s.py
Last active April 20, 2017 01:27
Algoritmo k-s feito em Python (usado para descobrir os CFCs de um digrafo)
# coisos globais
valor_profundidade_entrada = 0 # contador da profundidade em que os vertices entram da pilha (chamado recursivamente)
valor_profundidade_saida = 0 # contador da profundidade em que os vertices saem da pilha (termina sua chamada recursiva)
# dicionario com as profunfidades em que cada vertice entrou e saiu da pilha numa lista [profundidade_entrada, profundidade_saida]
profundidades_entrada_saida = {}
pai = {} # dicionario com os pais de cada vertice na arvore de busca em profundidade
aresta = {} # classificacao das arestas na arvore de busca em profundidade do grafo
niveis = {} # nivel de cada vertice na arvore de busca em profundidade
# conjunto de vertices ainda nao visitados (nunca entraram (e portanto nem sairam) da pilha)
nao_visitados = set()
@thbighead
thbighead / classificacao_arestas_profundidade_digrafo.py
Last active April 20, 2017 01:30
Classificando arestas da arvore de busca em profundidade feita em um digrafo com Python
# coisos globais
valor_profundidade_entrada = 0 # contador da profundidade em que os vertices entram da pilha (chamado recursivamente)
valor_profundidade_saida = 0 # contador da profundidade em que os vertices saem da pilha (termina sua chamada recursiva)
# dicionario com as profunfidades em que cada vertice entrou e saiu da pilha numa lista [profundidade_entrada, profundidade_saida]
profundidades_entrada_saida = {}
pai = {} # dicionario com os pais de cada vertice na arvore de busca em profundidade
aresta = {} # classificacao das arestas na arvore de busca em profundidade do grafo
niveis = {} # nivel de cada vertice na arvore de busca em profundidade
# conjunto de vertices ainda nao visitados (nunca entraram (e portanto nem sairam) da pilha)
nao_visitados = set()
@thbighead
thbighead / encontrar_ciclos_digrafo.py
Last active April 20, 2017 14:53
Encontra e salva os ciclos de um digrafo usando uma busca em profundidade (complexidade nao piora, continua O(n+m))
from copy import deepcopy
# coisos globais
valor_profundidade_entrada = 0 # contador da profundidade em que os vertices entram da pilha (chamado recursivamente)
valor_profundidade_saida = 0 # contador da profundidade em que os vertices saem da pilha (termina sua chamada recursiva)
# dicionario com as profunfidades em que cada vertice entrou e saiu da pilha numa lista [profundidade_entrada, profundidade_saida]
profundidades_entrada_saida = {}
pai = {} # dicionario com os pais de cada vertice na arvore de busca em profundidade
aresta = {} # classificacao das arestas na arvore de busca em profundidade do grafo
niveis = {} # nivel de cada vertice na arvore de busca em profundidade
@thbighead
thbighead / recursive_delete_folder.php
Created May 5, 2017 13:29
Function to delete a folder and every folders and files inside of it
function recurse_delete($path)
{
if (is_dir($path) === true)
{
$files = array_diff(scandir($path), array('.', '..'));
foreach ($files as $file)
{
recurse_delete(realpath($path) . '/' . $file);
}
@thbighead
thbighead / disjoint_sets.py
Created May 7, 2017 00:20
disjoint sets meio torto escrito em Python (o que eu fiz em C eh que eh o bicho!)
sets = {}
setsRanked = {}
def makeSet(x):
sets[x] = set([x])
def find(x):
for representative,subset in sets.iteritems():
if x in subset:
return representative
clear;
clc;
disp('zb1(t0, dt, tf, A, B, C, S0, I0)');
disp('dR(1)= (cos(t*%pi/12)+1)*(-A*R(1)-B*R(1)*R(2))+C*R(2)');
disp('dR(2)= -C*R(2)+(cos(t*%pi/12)+1)*(B*R(1)*R(2)+A*R(1))');
disp('zb2(t0, dt, tf, A, B, C, S0, I0)');
disp('dR(1)= A*R(1)-B*R(1)*R(2)');
disp('dR(2)= -C*R(2)+B*R(1)*R(2)');
@thbighead
thbighead / TConversor.java
Created August 22, 2018 23:28
Tela de app Android que converte Celsius para Fahrenheit.
package com.example.labc.tconversor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@thbighead
thbighead / IMCCalculator.java
Created August 23, 2018 00:09
App Android que calcula e comenta o seu IMC (de uma maneira um tanto zoeirinha demais pro meu gosto)
package com.example.labc.imccalculator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@thbighead
thbighead / ConversorAltura.java
Created September 6, 2018 00:13
Conversor de metros para pés usando SeekBar (falta implementação do botão "Limpar")
package com.example.labc.conversor_altura;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;
import java.util.Locale;