Back home

ARTES #012

ARTES #012

ARTS é uma atividade iniciada por 由左耳朵耗子--陈皓: Faça pelo menos uma pergunta sobre o algoritmo leetcode toda semana, leia e comente pelo menos um artigo técnico em inglês, aprenda pelo menos uma habilidade técnica e compartilhe um artigo com opiniões e pensamentos. (Ou seja, Algoritmo, Revisão, Dica e Compartilhamento são chamados de ARTS) e persistem por pelo menos um ano.

ARTES 012

Este é o artigo 12

Pergunta sobre algoritmo de algoritmo

Pergunta do algoritmo leetcode 241.Reorganizar String: Dificuldade: Moderada

442. Encontre todas as duplicatas em uma matriz

Dificuldade: Média

Dado um array de inteiros, 1 ≤ a[i] ≤ n ( n = tamanho do array), alguns elementos aparecem duas vezes e outros aparecem uma vez.

Encontre todos os elementos que aparecem duas vezes nesta matriz.

Você poderia fazer isso sem espaço extra e em tempo de execução O(n)?

Exemplo:

**Input:**
[4,3,2,7,8,2,3,1]

**Output:**
[2,3]

Solução

Idioma: C

/**
 * Return an array of size *returnSize.
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* findDuplicates(int* nums, int numsSize, int* returnSize) {
    
}

A ideia é contar quantas vezes um número aparece. Minha implementação é a seguinte. A complexidade do tempo é O(n); a questão não requer espaço adicional. A memória aplicada aqui é usada para armazenar os resultados. Não sei se a complexidade do espaço é considerada uma violação.


int* findDuplicates(int* nums, int numsSize, int* returnSize) {
    int *charCount = (int*)malloc(sizeof(int) * (numsSize+1));
    memset(charCount, 0, sizeof(int) * (numsSize+1));
    for (int i = 0; i < numsSize; i++) {
        int data = nums[i] ;
        charCount[data]++;
    }

    * returnSize = 0;
    for (int i =0; i < numsSize +1; i++) {
        int data = charCount[i] ;
        if (data > 1) {
            charCount[(*returnSize)++] =i;
        }
    }

    return charCount;
}


Encontrei uma resposta inteligente na área de discussão, como segue, por exemplo, se a entrada nums for [2,3,2], na primeira vez num=abs(nums[0]); O valor de num é 2 e o valor de nums correspondente a 2-1 é 3 e, em seguida, um sinal negativo é adicionado. Neste momento, nums é [2,-3,2]. Quando num=abs(nums[2); é usado pela terceira vez, o valor de num é 2 e o valor de nums correspondente a -1 é -3, indicando que o subscrito correspondente já apareceu.

int* findDuplicates(int* nums, int numsSize, int* returnSize) {
    if(nums==NULL||numsSize<2)
    {
        *returnSize=0;
        return NULL;
    }
    *returnSize=0;
    int *result=(int *)malloc(sizeof(int)*(numsSize/2));
    for(int i=0;i<numsSize;i++)
    {
        int num=abs(nums[i]);
        if(nums[num-1]>0)
            nums[num-1]=-nums[num-1];
        else
            result[(*returnSize)++]=num;
    }
    return result;
}

Revisão

Este artigo vem de https://medium.freecodecamp.org/how-to-think-like-a-programmer-lessons-in-problem-solving-d1d8bf1de7d2

Este artigo se concentra em como os programadores devem resolver problemas: A maneira como os novos programadores resolvem bugs é tentar repetidamente, o que é muito ineficiente. (A maneira como os novos programadores resolvem bugs é tentar repetidamente, o que é muito ineficiente). A abordagem correta deve ser estabelecer a sua própria abordagem geral para o problema, incluindo as seguintes etapas: 1 A primeira coisa a fazer é descobrir o problema e realmente entendê-lo. 2. Em vez de se apressar para resolver um problema, reserve um tempo para analisar, pensar sobre ele e traçar um plano. 3. Analise o problema. Divida o grande problema em pequenos problemas. 4. Quando você encontrar um pequeno problema difícil de resolver, primeiro não fique impaciente e acalme-se. Você pode resolvê-lo reexaminando o problema, pesquisando e depurando. 5 Não tenha medo de encontrar problemas. Somente resolvendo mais problemas você poderá melhorar sua capacidade de se tornar um especialista (não tenha medo de encontrar problemas. Somente resolvendo mais problemas você poderá melhorar sua capacidade de se tornar um especialista)

Os detalhes do artigo são os seguintes:

Como pensar como um programador — lições sobre resolução de problemas

Por Richard Reis

Se você está interessado em programação, talvez já tenha visto esta citação antes: Se você está interessado em programação, provavelmente já viu esta citação:

“Todos neste país deveriam aprender a programar um computador, porque ele ensina a pensar.” -Steve Jobs

Você provavelmente também se perguntou o que significa exatamente pensar como um programador? E como você faz isso?? Você também pode estar se perguntando: o que exatamente significa pensar como um programador? Como você faz isso?

Essencialmente, trata-se de uma forma mais eficaz de resolver problemas. Essencialmente, é uma maneira mais eficiente de resolver um problema.

Neste post, meu objetivo é te ensinar dessa forma. Neste artigo, meu objetivo é te ensinar dessa forma.

Ao final, você saberá exatamente quais etapas seguir para resolver melhor os problemas. Ao final, você saberá como resolver melhor o problema.

Por que isso é importante?

A resolução de problemas é a meta-habilidade. A resolução de problemas é uma meta-habilidade.

Todos nós temos problemas. Grande e pequeno. A forma como lidamos com eles às vezes é, bem… bem aleatória. Todos nós temos problemas. Grande e pequeno. A maneira como lidamos com esses problemas às vezes é aleatória. bem aleatório. aleatório/aleatório

A menos que você tenha um sistema, provavelmente é assim que você “resolve” problemas (que foi o que fiz quando comecei a codificar): A menos que você tenha um sistema instalado, provavelmente é assim que você “resolve” o problema (foi o que fiz quando comecei a codificar):

  1. Experimente uma solução.
  2. Se isso não funcionar, tente outro.
  3. Se isso não funcionar, repita o passo 2 até ter sorte.

Olha, às vezes você tem sorte. Mas essa é a pior maneira de resolver problemas! E é uma enorme perda de tempo. Olha, às vezes você está sem sorte. Mas essa é a pior maneira de resolver um problema! É uma perda de tempo muito, muito grande.

A melhor maneira envolve a) ter uma estrutura eb) praticá-la. A melhor maneira é a) ter uma estrutura eb) praticá-la.

"Quase todos os empregadores priorizam primeiro as habilidades de resolução de problemas. Quase todos os empregadores priorizam as habilidades de resolução de problemas primeiro.

Habilidades de resolução de problemas são quase unanimemente a qualificação mais importante que os empregadores procuram… mais do que proficiência em linguagens de programação, depuração e design de sistemas.

Demonstrar pensamento computacional ou a capacidade de resolver problemas grandes e complexos é tão valioso (se não mais) do que as habilidades técnicas básicas necessárias para um trabalho.” —Hacker Rank (Relatório de habilidades do desenvolvedor de 2018)#### Tenha uma estrutura Para encontrar a estrutura certa, segui os conselhos do livro de Tim Ferriss sobre aprendizagem,“The 4-Hour Chef”. Para encontrar a estrutura certa, segui os conselhos do livro de Tim Ferriss sobre aprendizagem,

Isso me levou a entrevistar duas pessoas realmente impressionantes: C. Jordan Ball (classificado em 1º ou 2º lugar entre mais de 65.000 usuários no Coderbyte) e V. Anton Spraul (autor do livro “Pense como um programador: uma introdução à solução criativa de problemas”).

Eu fiz a eles as mesmas perguntas e adivinhem? Suas respostas foram bem parecidas! Eu fiz a mesma pergunta e adivinhem? Suas respostas foram muito semelhantes!

Em breve você também os conhecerá.

Nota lateral: isso não significa que eles fizeram tudo da mesma maneira. Todo mundo é diferente. Você será diferente. Mas se você começar com princípios que todos concordamos que são bons, você irá muito mais longe e muito mais rápido. Nota lateral: Isso não significa que eles fazem tudo da mesma maneira. Todo mundo é diferente. Você será diferente. Mas se você começar com bons princípios com os quais todos concordamos, você irá mais longe e mais rápido.

“O maior erro que vejo novos programadores cometerem é focar em aprender sintaxe em vez de aprender como resolver problemas.” — V. Anton Spraul O maior erro que vejo novos programadores cometerem é focar no aprendizado da sintaxe em vez de aprender como resolver problemas.

Então, o que você deve fazer quando encontrar um novo problema? Então, o que você deve fazer quando encontrar um novo problema?

Aqui estão as etapas:

1. Entenda

Saiba exatamente o que está sendo perguntado. A maioria dos problemas difíceis são difíceis porque você não os entende (daí porque este é o primeiro passo). Saiba exatamente o que está sendo perguntado. A maioria dos quebra-cabeças são difíceis porque você não os entende (daí este primeiro passo).

Como saber quando você entende um problema? Quando você pode explicar em inglês simples. Como você sabe quando entende uma pergunta? Quando você pode explicar em inglês simples.

Você se lembra de estar preso a um problema, começar a explicá-lo e instantaneamente ver falhas na lógica que não via antes? Você se lembra de ter ficado preso a um problema, começou a explicá-lo e imediatamente viu falhas na lógica que não tinha visto antes?

A maioria dos programadores conhece esse sentimento. A maioria dos programadores conhece esse sentimento.

É por isso que você deve anotar seu problema, rabiscar um diagrama ou contar a alguém sobre ele (ou algo assim… algumas pessoas usam um pato de borracha). É por isso que você deve anotar seu problema, desenhar um diagrama ou contar a alguém (ou alguma outra coisa… algumas pessoas usam patinhos de borracha).

“Se você não consegue explicar algo em termos simples, você não entende.” -Richard Feynman

2. Plano

Não mergulhe direto na solução sem um plano (e de alguma forma espere que você consiga resolver o problema). Planeje sua solução! Não mergulhe de cabeça na solução de problemas sem um plano (e espere que você consiga sobreviver). Planeje sua solução! (Não mergulhe direto (Não mergulhe direto))

Nada pode ajudá-lo se você não conseguir anotar as etapas exatas. Se você não conseguir anotar as etapas exatas, nada o ajudará.

Na programação, isso significa não começar a hackear imediatamente. Dê tempo ao seu cérebro para analisar o problema e processar as informações. Na programação, isso significa não começar a hackear imediatamente. Dê tempo ao seu cérebro para analisar o problema e processar as informações.

Para obter um bom plano, responda a esta pergunta: Para obter um bom plano, responda a esta pergunta:

“Dada a entrada X, quais são as etapas necessárias para retornar a saída Y?” Dada a entrada X, quais são as etapas necessárias para retornar a saída Y?

Sidenote: Os programadores têm uma ótima ferramenta para ajudá-los com isso… Comentários! Sidenote: Os programadores têm uma ótima ferramenta para ajudá-los a conseguir isso… Notas!

3. Divida

Preste atenção. Este é o passo mais importante de todos.

Não tente resolver um grande problema. Você vai chorar. Não tente resolver um grande problema. Você vai chorar.

Em vez disso, divida-o em subproblemas. Esses subproblemas são muito mais fáceis de resolver.

Em seguida, resolva cada subproblema um por um. Comece com o mais simples. Mais simples significa que você sabe a resposta (ou está mais próximo dessa resposta). Em seguida, resolva cada subproblema um por um. Comece com o mais simples. O significado mais simples é que você sabe a resposta (ou está mais próximo dessa resposta).

Depois disso, mais simples significa que a solução deste subproblema não depende da resolução de outros. Depois disso, a abordagem mais simples significa que a solução de um subproblema não depende da solução de outros problemas.

Depois de resolver cada subproblema, ligue os pontos. Depois de resolver cada subproblema, ligue os pontos.

Conectar todas as suas “subsoluções” lhe dará a solução para o problema original. Parabéns! Conectar todas as “subsoluções” lhe dará a solução para o problema original. Parabéns!

Esta técnica é a base da resolução de problemas. Lembre-se disso (leia esta etapa novamente, se necessário). Esta técnica é a base da resolução de problemas. Memorize-o (leia este passo novamente se necessário).> “Se eu pudesse ensinar a cada programador iniciante uma habilidade de resolução de problemas, seria a ‘técnica de redução do problema’. “Se eu pudesse ensinar a cada programador iniciante uma habilidade de resolução de problemas, seria a ‘técnica de redução do problema’.

Por exemplo, suponha que você seja um programador iniciante e seja solicitado a escrever um programa que leia dez números e descubra qual número é o terceiro mais alto. Para um programador novato, isso pode ser uma tarefa difícil, embora exija apenas sintaxe básica de programação. Por exemplo, suponha que você seja um novo programador e seja solicitado a escrever um programa que leia 10 números e depois descubra qual número é o terceiro mais alto. Esta pode ser uma tarefa difícil para um programador novato, embora exija apenas sintaxe básica de programação.

Se você estiver travado, reduza o problema a algo mais simples. Em vez do terceiro número mais alto, que tal encontrar o mais alto no geral? Ainda é muito difícil? Que tal encontrar o maior de apenas três números? Ou o maior dos dois? Se você ficar preso, você deve simplificar o problema. Em vez do terceiro número mais alto, como encontrar o mais alto no geral? Ainda é muito duro? Que tal encontrar o maior de três números? Ou o maior dos dois?

Reduza o problema ao ponto em que você saiba como resolvê-lo e escreva a solução. Em seguida, expanda um pouco o problema e reescreva a solução para corresponder, e continue até voltar ao ponto de partida.” —V. Anton Spraul Simplifique o problema até o ponto em que você saiba como resolvê-lo e escreva uma solução. Em seguida, expanda um pouco o problema, reescreva a solução para que corresponda e continue até voltar ao ponto de partida.

4. Preso?

A esta altura, você provavelmente está sentado aí pensando “Ei, Richard… Isso é legal e tudo, mas e se eu estiver preso e não conseguir nem resolver um subproblema??” Agora, você provavelmente está sentado aí pensando “Ei, Richard…” Isso é legal, mas e se eu estiver preso e não conseguir nem resolver o subproblema?

Primeiro, respire fundo. Em segundo lugar, isso é justo. Primeiro, respire fundo. Em segundo lugar, é justo.

Não se preocupe, amigo. Isso acontece com todo mundo! Não se preocupe, amigo. Isso acontece com todo mundo!

A diferença é que os melhores programadores/solucionadores de problemas são mais curiosos sobre bugs/erros do que irritados. A diferença é que os melhores programadores/solucionadores de problemas ficam mais curiosos sobre bugs/bugs do que irritados.

Na verdade, aqui estão três coisas que você pode tentar ao enfrentar um golpe: Na verdade, existem três coisas que você pode tentar quando algo ruim acontece com você:

  • Depurar: Percorra passo a passo sua solução tentando descobrir onde você errou. Os programadores chamam isso de depuração (na verdade, isso é tudo que um depurador faz). Depuração: analise sua solução, tentando descobrir o que deu errado. O programador chama isso de depuração (na verdade, isso é tudo que o depurador faz).

“A arte da depuração é descobrir o que você realmente disse ao seu programa para fazer, em vez do que você pensou que disse para ele fazer.” —André Cantor A arte da depuração é descobrir o que você realmente diz ao seu programa para fazer, e não o que você acha que manda ele fazer.

  • Reavaliar: Dê um passo para trás. Veja o problema de outra perspectiva. Existe algo que possa ser abstraído para uma abordagem mais geral? Reavaliar: dê um passo para trás. Veja esse problema de outro ângulo. Existe algo que possa ser abstraído em um método mais geral?

“Às vezes ficamos tão perdidos nos detalhes de um problema que negligenciamos princípios gerais que resolveriam o problema em um nível mais geral. […] “Às vezes ficamos tão envolvidos nos detalhes de um problema que perdemos de vista os princípios gerais para resolver problemas num nível mais geral.”

O exemplo clássico disso, é claro, é a soma de uma longa lista de inteiros consecutivos, 1 + 2 + 3 +… + n, que um Gauss muito jovem rapidamente reconheceu ser simplesmente n(n+1)/2, evitando assim o esforço de ter que fazer a adição.” —C. Bola Jordão Claro, o exemplo mais clássico é a soma de uma longa lista de inteiros consecutivos, 1 + 2 + 3 +…+ n, que um Gauss muito jovem rapidamente reconheceu como n(n+1)/2, de modo que não houve necessidade de adicionar mais.

Sidenote: Outra forma de reavaliar é começar de novo. Exclua tudo e comece de novo com novos olhos. Estou falando sério. Você ficará surpreso com o quão eficaz isso é. Nota lateral: Outra forma de reavaliar é começar de novo. Exclua tudo e recomece com novos olhos. Estou falando sério. Você ficará surpreso com o quão eficaz isso é.

  • Pesquisa: Ahh, bom e velho Google. Você leu certo. Não importa qual problema você tenha, provavelmente alguém o resolveu. Encontre essa pessoa/solução. Na verdade, faça isso mesmo que tenha resolvido o problema! (Você pode aprender muito com as soluções de outras pessoas). Pesquisa: Ah, bom. Você leu certo. Seja qual for o problema que você tenha, provavelmente alguém o resolveu. Encontre essa pessoa/solução. Na verdade, faça isso mesmo que resolva o problema! (Você pode aprender muito com as soluções de outras pessoas).

Advertência: não procure uma solução para o grande problema. Procure apenas soluções para subproblemas. Por que? Porque a menos que você lute (nem que seja um pouco), você não aprenderá nada. Se você não aprende nada, você perdeu seu tempo. Nota: Não procure soluções para grandes problemas. Encontre apenas soluções para subproblemas. Por que? Porque a menos que você tente (nem que seja um pouquinho), você não aprenderá nada. Se você não aprender nada, estará perdendo seu tempo.

Prática

Não espere ficar ótimo depois de apenas uma semana. Se você quer ser um bom solucionador de problemas, resolva muitos problemas! Não espere ficar ótimo em apenas uma semana. Se você quer ser um bom solucionador de problemas, resolva muitos problemas!

Prática. Prática. Prática. Será apenas uma questão de tempo até que você reconheça que “este problema poderia ser facilmente resolvido com <insira o conceito aqui>”. Prática. Prática. Prática. Mais cedo ou mais tarde você perceberá que “este problema pode ser facilmente resolvido com <insira o conceito aqui>”.

Como praticar? Existem opções incríveis! Como praticar? Existem muitas opções!Quebra-cabeças de xadrez, problemas de matemática, Sudoku, Go, Banco Imobiliário, videogames, cryptokitties, bla… bla… bla…. jogo de xadrez, problemas de matemática, sudoku, monopólio, videogames, cryptokitties, bla bla bla…

Na verdade, um padrão comum entre pessoas de sucesso é o hábito de praticar a “resolução de microproblemas”. Por exemplo, Peter Thiel joga xadrez e Elon Musk joga videogame. Na verdade, um padrão comum entre pessoas de sucesso é que elas praticam a resolução de microproblemas. Por exemplo, Peter Thiel joga xadrez e Elon Musk joga videogame.

“Byron Reeves disse: ‘Se você quiser ver como será a liderança empresarial daqui a três a cinco anos, veja o que está acontecendo nos jogos online.’ "Byron Reeves disse: 'Se você quiser saber como será a liderança empresarial em três a cinco anos, veja o que está acontecendo nos jogos online. '”

Avançando para hoje. Elon [Musk], Reid [Hoffman], Mark Zuckerberg e muitos outros dizem que os jogos têm sido fundamentais para o sucesso na construção de suas empresas.” - Mary Meeker ([relatório de tendências da Internet de 2017] (https://www.recode.net/2017/5/31/15693686/mary-meeker-kleiner-perkins-kpcb-slides-internet-trends-code-2017)) Avanço rápido para hoje. Elon Musk, Reid Hoffman, Mark Zuckerberg e muitos outros disseram que os jogos foram a pedra angular das suas empresas de sucesso.

Isso significa que você deve apenas jogar videogame? De jeito nenhum. Isso significa que você só deve jogar videogame? De nada.

Mas do que se tratam os videogames? Isso mesmo, resolução de problemas! Mas sobre o que exatamente são os videogames? Sim, problema resolvido!

Então, o que você deve fazer é encontrar uma saída para praticar. Algo que permite resolver muitos microproblemas (de preferência, algo que você goste). Então, o que você deve fazer é encontrar uma saída para a prática. Algo que permite resolver muitos pequenos problemas (de preferência, algo que você goste).

Por exemplo, gosto de desafios de codificação. Todos os dias tento resolver pelo menos um desafio (geralmente no Coderbyte). Por exemplo, adoro desafios de programação. Todos os dias tento resolver pelo menos um desafio (geralmente na Coderbyte).

Como eu disse, todos os problemas compartilham padrões semelhantes. Como eu disse, todas as questões têm padrões semelhantes.

Conclusão

Isso é tudo pessoal! Este é todo mundo!

Agora você sabe melhor o que significa “pensar como um programador”. Agora você sabe o que significa “pensar como um programador”.

Você também sabe que a resolução de problemas é uma habilidade incrível de cultivar (a meta-habilidade). Você também sabe que resolver problemas é uma habilidade incrível (meta-habilidade).

Como se não bastasse, observe como você também sabe o que fazer para praticar suas habilidades de resolução de problemas! Se isso não bastasse, observe que você também sabe praticar habilidades de resolução de problemas!

Ufa… Muito legal, né? Legal, certo?

Finalmente, desejo que você encontre muitos problemas. Por fim, desejo-lhe muitos problemas.

Você leu certo. Pelo menos agora você sabe como resolvê-los! (além disso, você aprenderá que a cada solução você melhora). Você leu certo. Pelo menos agora você sabe como resolver! (Além disso, você aprenderá que melhorará a cada solução).

"Quando você pensa que superou um obstáculo com sucesso, outro surge. Mas é isso que mantém a vida interessante.[…] Justamente quando você pensa que superou um obstáculo com sucesso, outro surge. Mas é isso que torna a vida interessante.

A vida é um processo de superação desses impedimentos – uma série de linhas fortificadas que devemos romper. A vida é um processo de superação dessas barreiras – uma série de defesas que devemos romper.

Cada vez, você aprenderá algo. Cada vez, você aprende alguma coisa.

Cada vez, você desenvolverá força, sabedoria e perspectiva. Cada vez, você desenvolverá força, sabedoria e percepção.

Cada vez, um pouco mais de competição desaparece. Até que tudo o que resta seja você: a melhor versão de você.” —Ryan Holiday (O obstáculo é o caminho) Cada vez, mais concorrência desaparece. Até você se tornar a melhor versão de si mesmo. ——Ryan Holliday (O obstáculo é a estrada)

Agora vá resolver alguns problemas!

E boa sorte 🙂

Agradecimentos especiais a C. Jordan Ball e V. Anton Spraul. Todos os bons conselhos aqui vieram deles.

Além disso, todo o conhecimento de programação que adquiri em tão pouco tempo não teria acontecido sem a Lambda School. Não posso agradecê-los/recomendá-los o suficiente.

Além disso, todo o conhecimento de programação que adquiri em tão pouco tempo não teria acontecido sem a Lambda School. Obrigado/recomendo muito.

Obrigado por ler! 😊 Se você gostou, teste quantas vezes você consegue acertar 👏 em 5 segundos. É um ótimo cardio para os seus dedos E ajudará outras pessoas a ver a história. Obrigado por ler! 😊 Se gostar, teste quantas vezes você consegue acertar em 5 segundos. 👏 É um ótimo treino cardiovascular para os dedos e também ajudará outras pessoas a ver essa história.

DICAS

Aprendi a usar o Instrument esta semana e vou traduzir os documentos oficiais mais recentes. Já traduzi uma pequena parte do primeiro capítulo: https://dandan2009.github.io/2018/10/26/Instruments-chinese-translation/

Compartilhar

Hoje aprendi alguns termos novos: “rede clara”, “rede escura”, “rede profunda” e rede sombra. Clearnet refere-se à rede que normalmente usamos. “Dark Web”, “Deep Web”, “Clear Web”, Shadow Web. “Dark Web”, “Deep Web” e Shadow Web referem-se a redes que estão fora do alcance das pessoas comuns e não podem ser acessadas por métodos convencionais. A maioria dessas redes contém informações ilegais.

O seguinte conteúdo vem da Internet:

“Dark Web” DarkWeb e DeepWeb DeepWeb é uma ampla gama de conteúdo da Internet que não pode ser indexado pelos motores de busca Então, o que é Darknet (inglês: Darknet ou Dark Web)? A Darknet é uma rede que só pode ser conectada usando software especial, autorização especial ou configurações especiais do computador. Os endereços dos servidores e a transmissão de dados na dark web são geralmente anônimos e invisíveis. Em contraste, a Internet comumente usada é chamada de “Clearnet” ou “Clearnet” (Inglês: Clearnet) porque pode rastrear sua verdadeira localização geográfica e a identidade da pessoa que está se comunicando. A Onion Network é atualmente reconhecida como o melhor método para comunicação anônima na Internet.

Usando Tor Usar o Tor não é difícil. Se você tiver acesso ao Google, basta fazer login no site Tor http://www.theonionrouter.com/下载Tor和Tor浏览器即可~

https://www.mushroomnetworks.com/

castelo de cartas O velho do filme “Sin City”

Na verdade, o termo “Shadow Web” só apareceu no início deste ano, e a origem deste termo vem de uma postagem no Reddit (semelhante ao Fórum Gordon de Hong Kong). Esta é também a história que quero apresentar a vocês hoje… um terrível aviso.Como todas as tecnologias, existem lados bons e maus. Quando a rede desempenha o seu papel na partilha de informação para beneficiar a humanidade, também tem uma camada estrutural semelhante ao preto e branco na sociedade, dando origem a três irmãos chamados rede clara, rede profunda e rede escura.

A origem da dark web

Então, quando esses sites começaram a se desenvolver? Ironicamente, tal como a fonte da maioria das tecnologias, o iniciador deve ser mencionado aqui – os militares dos EUA.

Em 1996, cientistas do Instituto de Pesquisa Naval dos EUA apresentaram um artigo intitulado “Hidden Path Information” e propuseram a ideia de construir um sistema furtivo que permitiria a qualquer usuário permanecer anônimo em tempo real ao se conectar à Internet sem revelar sua identidade ao servidor. A construção deste sistema é muito necessária. Em primeiro lugar, pode proteger dissidentes políticos em vários países, escapar à opressão autoritária de vários países e popularizar a democracia universal aos olhos dos americanos; em segundo lugar, pode fornecer um local seguro para o pessoal de inteligência dos EUA trocar informações.

Em outubro de 2003, essa ideia começou a ser implementada oficialmente para fornecer aos usuários um espaço on-line anônimo e gratuito. Como as senhas que protegiam os dados eram embrulhadas como camadas de uma cebola, o sistema acabou sendo chamado de Tor (The Onion Router). https://www.ufochn.com/article-205-1.html

https://www.aqniu.com/industry/37816.html

https://parrotsec-cn.org/t/topic/50

http://blog.sina.com.cn/s/blog_63296ead0102x95x.html

http://www.theonionrouter.com/about/torusers.html.en#normalusers

http://www.thehiddenwiki.org/

Os sites a seguir são alguns dos sites darknet que Rocket encontrou no famoso site thehiddenwiki.org/. Certifique-se de usar o Tor para acessar a dark web (sites que terminam em .onion) Certifique-se de usar https Não use o Tor para fazer login em nenhum site (como Baidu Netdisk, Weibo, Zhihu, etc.) Não envie nenhuma informação pessoal não solicitada sobre você

https://www.ufochn.com/article-205-1.html