ARTS geht Schritt für Schritt in die zweite Woche

Einführung

Jeder, der Shopkeeper 3 kennt, muss wissen, dass ich seit 6 Jahren technische Blogs erstelle und jeden Monat regelmäßig nicht weniger als 6 Blogbeiträge veröffentliche. Gleichzeitig sind Aktivitäten wie ARTS für mich als teilenfreudiger Entwickler natürlich unverzichtbar. Da ich vorhabe, sie gemeinsam zu teilen, habe ich zuvor eine lokale Dokumentaufzeichnung durchgeführt, sodass ich die Inhalte einfach integrieren kann, und dann beginne ich mit dem Check-in in der zweiten Woche.

Algorithmus

Die diese Woche geteilte Algorithmusfrage ist eine klassische Algorithmusfrage von Leetcode-70 ( offizielle LeetCode-Website – eine Technologie-Wachstumsplattform, die von Geeks auf der ganzen Welt geliebt wird ): das Treppensteigproblem.

Problembeschreibung: Wenn ein Mensch Treppen steigt, kann er in einem Schritt nur eine Ebene oder in einem Schritt zwei Stockwerke zurücklegen. Wie viele Wege gibt es insgesamt?

Eingabe: Gesamtzahl der Treppen

Ausgabe: Es gibt mehrere Möglichkeiten, sich zu bewegen

Ideen zur Problemlösung:

Dieses Problem ist ein rekursives Problem.

1. Die Gesamtzahl der Treppen beträgt 1. Es gibt eine Möglichkeit, eine Stufe nach der anderen zu gehen.

2. Die Gesamtzahl der Treppen beträgt 2 und es gibt zwei Möglichkeiten zu gehen:

1) Ein Schritt nach dem anderen, zwei Schritte nach dem anderen

2) Gehen Sie zwei Stockwerke gleichzeitig, einen Schritt nach dem anderen

3. Wie viele Wege gibt es für eine Treppe mit insgesamt n Ebenen?

Es gibt nur zwei Möglichkeiten, Level n zu erreichen:

1) Gehen Sie im n-1. Stock jeweils eine Stufe hinauf (Schritt für Schritt) bis zum n-ten Stock

2) Gehen Sie 1 Stufe (eine Stufe, zwei Stockwerke) im n-2. Stockwerk hinauf zum n-ten Stockwerk

Endgültige Methode:

Der Gehweg mit der Gesamtzahl der Treppen beträgt n = der Gehweg mit der Gesamtzahl der Treppen beträgt n-1 + der Gehweg mit der Gesamtzahl der Treppen beträgt n-2

Ähnlich der Fibonacci-Folge, außer dass Ebene 0 0 Züge hat.

Hinweis: 0 Typen auf Layer 0, 1 Typ auf Layer 1, 2 Typen auf Layer 2, Layer 3=Layer 2+1, Layer 4=Layer 3+2,…

Der mit JS implementierte Code lautet wie folgt:

function step(n){
    if(n <= 2){
        return n;
    }
    var n1 = 1;
    var n2 = 1;
    var sum = 0;
    for(var i = 3;i<=n;i++){
        sum = n1+n2;
        n1 = n2;
        n2 = sum;
    }
    return sum;
}

Rezension

Ich habe mich kürzlich mit der Technologie von Web 3 befasst. Lassen Sie mich einen Artikel zu Web 3 veröffentlichen. In diesem Artikel geht es um den gesamten Zyklus einer Ethereum-Transaktion. Der spezifische Artikellink: Notonlyowner | Was passiert, wenn Sie 1 DAI senden ?

Durch die Lektüre dieses Artikels erhalten Sie als Anfänger ein erstes Verständnis des gesamten Transaktionszyklus von Ethereum. Lassen Sie uns einen Auszug aus dem Artikel teilen:

Gaszauberei

Der nächste Schritt besteht darin, zu entscheiden, wie viel für die Transaktion bezahlt werden soll. Denn denken Sie daran, dass für alle Transaktionen eine Gebühr an das Netzwerk von Knoten gezahlt werden muss, die Zeit und Ressourcen für deren Ausführung und Validierung in Anspruch nehmen.

Die Kosten für die Ausführung einer Transaktion werden in ETH bezahlt. Und die endgültige Menge an ETH hängt davon ab, wie viel Nettogas  Ihre  Transaktion verbraucht (d. h. wie rechenintensiv sie ist), wie viel Sie bereit sind, für jede ausgegebene Gaseinheit zu zahlen, und wie viel das Netzwerk zu akzeptieren bereit ist mindestens.

Aus Nutzersicht gilt in der Regel: Je mehr man bezahlt, desto schneller sind die Transaktionen enthalten. Wenn Sie also im nächsten Block 1 DAI an Vitalik zahlen möchten, müssen Sie wahrscheinlich eine höhere Gebühr festlegen, als wenn Sie bereit wären, ein paar Minuten (oder länger, manchmal sogar viel länger) zu warten, bis das Benzin billiger ist.

Verschiedene Geldbörsen können unterschiedliche Ansätze bei der Entscheidung verfolgen, wie viel für Benzin bezahlt werden soll. Mir ist kein einziger kugelsicherer Mechanismus bekannt, der von allen verwendet wird. Strategien zur Ermittlung der richtigen Gebühren können die Abfrage gasbezogener Informationen von Knotenpunkten umfassen (z. B. die vom Netzwerk akzeptierte Mindestgrundgebühr).

Der nächste Schritt besteht darin, zu entscheiden, wie viel für die Transaktion bezahlt werden soll. Denn denken Sie daran, dass für alle Transaktionen eine Gebühr an das Knotennetzwerk gezahlt werden muss, was Zeit und Ressourcen erfordert, um sie auszuführen und zu überprüfen.

Die Kosten für die Ausführung von Transaktionen werden in ETH bezahlt. Der endgültige ETH-Betrag hängt davon ab, wie viel Nettogas Ihre Transaktion verbraucht (d. h. wie hoch die Rechenkosten sind), wie viel Sie pro verbrauchter Gaseinheit zu zahlen bereit sind und von der Mindestmenge, die das Netzwerk zu akzeptieren bereit ist.

Aus Nutzersicht gilt in der Regel: Je mehr man bezahlt, desto schneller sind die enthaltenen Transaktionen. Wenn Sie also Vitalik 1 DAI für den nächsten Block zahlen möchten, müssen Sie möglicherweise eine höhere Gebühr festlegen, als Sie bereit sind, ein paar Minuten (oder länger, manchmal länger) zu warten, bis das Benzin billiger ist.

Verschiedene Geldbörsen können unterschiedliche Ansätze zur Bestimmung des Benzinpreises verfolgen. Ich weiß nicht, welchen kugelsicheren Mechanismus jeder verwendet. Eine Strategie zur Ermittlung der korrekten Gebühr könnte darin bestehen, gasbezogene Informationen vom Knoten abzufragen (z. B. die vom Netzwerk akzeptierte Mindestgrundgebühr).

Technik/Tipps

Dieses Mal teile ich immer noch einen wichtigen und klassischen Wissenspunkt zur Front-End-Entwicklung. Bezüglich der Verwendung des Diff-Algorithmus mit Key, aber unter Verwendung des Index als Wert, d Neues virtuelles DOM, die Existenz des Schlüssels wird direkt aktualisiert. Verwenden Sie den aktualisierten Inhalt dieses Tags erneut. Wenn der Schlüssel nicht vorhanden ist, erstellen Sie direkt einen neuen.

Konkrete Beispiele sind wie folgt:

<ul id="content">
    <li v-for="(item, index) in array" :key="index">
        {
   
   { item }}
        <input type="text">
    </li>
</ul>
<button @click="addClick">在下标为1的位置新增一行</button>
export default {
    data(){
        return {
            array: ["11", "44", "22", "33"]
        }
    },
    methods: {
        addClick(){
            this.array.splice(1, 0, '44')
        }
    }
};

Wie Sie dem obigen Code entnehmen können, wird durch die v-for-Schleife eine neue DOM-Struktur generiert, in der der Schlüssel kontinuierlich und mit den Daten konsistent ist. Anschließend werden die alte und die neue DOM-Struktur verglichen und die Unterschiede durch gefunden diff-Algorithmus, und dann wird der Patch auf die Seite angewendet. Fügen Sie schließlich ein neues li hinzu und aktualisieren Sie dann den Inhalt ab dem zweiten Element.

Aktie

Dieses Mal werde ich einige Inhalte im Zusammenhang mit DTU teilen und die Merkmale von DTU aus einer persönlichen Perspektive betrachten. Persönlich denke ich, dass es fünf Aspekte der DTU-Eigenschaften gibt: hohe Sicherheit, einfache Bedienung, Sekundärentwicklung, Remote-Upgrade und niedrige Kosten.

Hohe Sicherheit ist eines der grundlegenden Merkmale von DTU. Es verfügt über verschiedene Schutzmaßnahmen wie Firewalls, Datenverschlüsselung und Authentifizierungsmechanismen, um die Sicherheit von DTU-Geräten und -Daten zu schützen. Durch die Verschlüsselung der Datenübertragung kann DTU die Datensicherheit gewährleisten und das Risiko von Datenlecks vermeiden.

Zu den Vorteilen von DTU gehört auch die Benutzerfreundlichkeit. Es verfügt über eine benutzerfreundliche Oberfläche und einfache und leicht verständliche Betriebsabläufe, die den Benutzern einen schnellen Einstieg ermöglichen und die Lernkosten effektiv senken.

DTU kann die Verbindung und Interoperabilität von Geräten durch einfache Konfiguration und Einstellungen schnell realisieren und auch eine Sekundärentwicklung durchführen. Es ermöglicht Benutzern die Durchführung einer Sekundärentwicklung und einer benutzerdefinierten Entwicklung über JavaScript, um personalisiertere Anforderungen zu erfüllen.

Die Fernaktualisierungsfähigkeit ist ebenfalls ein wichtiges Merkmal von DTU. Es kann DTU-Geräte aus der Ferne aktualisieren, ohne den Betrieb vor Ort zu beeinträchtigen, was die Arbeit des Wartungspersonals vor Ort erheblich erleichtert. Mit anderen Worten: DTU kann die Ausrüstung per Remote-Upgrade aufrüsten und so Produktionsverluste durch Abschalten und Aufrüsten der Ausrüstung vermeiden.

DTU verfügt außerdem über kostengünstige Eigenschaften. Sein niedriger Preis kann nicht nur für Großanwendungen genutzt werden, sondern kann auch die Amortisationszeit der Investition erheblich verkürzen. Damit ist es ein wichtiges Gerät im Bereich des Internets der Dinge und kann die Ausrüstungskosten von Unternehmen erheblich senken und den Effekt „Kostensenkung und Effizienzsteigerung“ von Unternehmen verbessern.

Abschluss

Das war's mit diesem Austausch. Die zweite Woche geht Schritt für Schritt voran. Im Allgemeinen ist es gut, jeden Tag etwas Zeit damit zu verbringen, diese Dinge einzeln zu studieren und dann am Ende der Woche eine Zusammenfassung zu erstellen. Nachdem Sie die vier Dinge nacheinander erledigt haben, können Sie Ihr Programmierdenken schrittweise verbessern und sich auch erlauben, weiter voranzukommen und auf subtile Weise zu wachsen! Wir sehen uns nächste Woche!

Guess you like

Origin blog.csdn.net/CC1991_/article/details/132861829