Was ist der [Ruby / Python / Java / Swift / JS] -Algorithmus?

Gründe, diesen Artikel zu schreiben

  1. Fassen Sie Ihre eigenen Kenntnisse über Algorithmen zusammen (ziemlich grob).
  2. Überprüfen Sie, wann Sie vergessen haben

Was ist ein Algorithmus?

Breite Definition

"Eine Reihe von Schritten, um die Arbeit zu erledigen" [^ 1]

Es gibt auch einen "Algorithmus" im Alltag.

Problem: Ich möchte braunen Reis (neuen Reis) [^ 2] köstlich kochen.

Wie man köstlichen braunen Reis kocht (= das ist ** "Algorithmus" **)

  1. Lassen Sie den braunen Reis nach dem Waschen 12 bis 24 Stunden lang Wasser aufnehmen.
  2. Fügen Sie die gleiche Tasse Wasser, Salz und Sake wie brauner Reis hinzu.
  3. Bei mäßiger Hitze erhitzen, so dass es in 10 Minuten kocht. Wenn es kocht, bei schwacher Hitze 15 Minuten erhitzen.
  4. Schalten Sie die Heizung und den Dampf für 15 Minuten aus.

Wenn Sie die Kochmethode von ▲ befolgen, können Sie köstlich mit Gas, Elektroherd oder IH kochen. ▲ Erstens können Sie mit einem Reiskocher kochen, ohne in einem Topf zu kochen.

Ein Beispiel für einen "Algorithmus", der den Markt erschüttert [^ 3]

  1. Mai 2010, 14:47 Uhr (Eastern Time) Der Dow-Durchschnitt fiel in 3 Minuten um 1000 USD (= ** Flash Crash **).

Mögliche Gründe für dieses Phänomen: Details noch unbekannt

・ Zu dieser Zeit gab es weltweit ein Gefühl der Krise, dass die griechische Regierung in Verzug geraten würde, und als dies geschah, bestand die Angst, in eine globale Finanzkrise zu geraten. ・ Der von einem Fondsmanager verwendete Algorithmus verkaufte Aktien-Futures im Wert von 4 Mrd. USD zu schnell, und andere Algorithmen reagierten. ・ Mehrere Händler haben zusammengearbeitet und versucht, den Markt mit mehreren Algorithmen zu stürzen

"Algorithmus" in der Computerwelt

Rekursiv

Schreiben Sie einen Algorithmus, um die Hierarchie mithilfe von rekursiv zu finden (Ruby / Python / Java / Swift).

factiorial.rb


def factorial(number)
	if number == 0
		1
	else
		number * factorial(number - 1)
	end
end

(0..20).each do |i|
	puts "#{i}! = #{factorial(i)}"
end

factiorial.py


def factorial(number):
    if(number==0):
        return 1
    else:
        return number * factorial(number-1)

for i in range(1,20+1):
    print(str(i) + "! = " + str(factorial(i)))

Factorial.java


class Factorial{
	public static int factorial(int number){
		if (number == 0){
			return 1;
		} else {
			return number * factorial(number - 1);
		}
	}

	public static void main(String[] args){
		for(int i=1; i<=20; i++){
			System.out.println(i + "! = " + (factorial(i)));
		}
	}
}

factorial.swift


func factiorial(_ number:Int) -> Int{
    if(number==0){
        return 1
    } else {
        return number * factiorial(number-1)
    }
}

for i in 0...20 {
     print("\(i)! = \(factiorial(i))")
}

factorial.js


const factorial = (number)=>{
   if(number===0){
       return 1;
   } else {
       return number * sample(number-1);
   }
}

for(let i=1; i<=20; i++){
   console.log(`${i}! = ${factorial(i)}`);
}

Ruby/Python/Swift/JS-Ausgabeergebnis


0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000

Java-Ausgabeergebnis


1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 1932053504
14! = 1278945280
15! = 2004310016
16! = 2004189184
17! = -288522240
18! = -898433024
19! = 109641728
20! = -2102132736

Andere Algorithmen

Lineare Suche Dichotomie Hash-Suche

Verlauf bearbeiten

2018/11/03 Gepostet 2018/11/19 JS-Code hinzugefügt und Titel geändert 2018/12/01 Link für lineare Suche hinzugefügt 2018/12/02 Link für Dichotomie / Hash-Suche hinzugefügt

Referenzmaterial

・ Christopher Steiner (Übersetzung: Ryo Nagamine) "Algorithmen dominieren die Welt" (KADOKAWA, 2013) ・ Thomas H. Colmen (Übersetzung: Takahiro Nagao) "Grundlagen der Algorithmen" (Nikkei BP, 2016) ・ Nobuhiro Shibata "Neue und klare Java-Algorithmen und Datenstrukturen" (SB Creative, 2017)

[^ 1]: "Grundlagen des Algorithmus" S. 15 [^ 2]: Ich koche Reis in einem Topf, weil ich zu Hause keinen Reiskocher habe und die Dinge nicht so weit wie möglich steigern möchte. [^ 3]: "Algorithmen dominieren die Welt" S. 5-10

Recommended Posts

Was ist der [Ruby / Python / Java / Swift / JS] -Algorithmus?
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
[Swift / Ruby / Python / Java] Objektorientierte Programmierung
Python> Was ist ein erweitertes Slice?
Was ist Python?
Was ist Python?
[Python] Was ist Pipeline ...
Was ist ein Iterator?
[Python] Was ist virtualenv?
Java VS PHP VS Python VS Ruby
Python ist eine Sprache für Erwachsene
Was ist eine Instanzvariable?
[Python] Python und Sicherheit - is Was ist Python?
[Python] * args ** Was ist kwrgs?
Python-Grundkurs (1 Was ist Python?)
[Python] Was ist eine Zip-Funktion?
[Python] Was ist eine with-Anweisung?
[Python] Was ist @? (Über Dekorateure)
Lassen Sie uns mit Python 2 einen Investitionsalgorithmus entwickeln
[Python] Was ist der sortierte Schlüssel?
Python für Anweisung ~ Was ist iterierbar ~
Ruby Python Java Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung
Wofür ist der Python-Unterstrich (_)?
Python in ist auch ein Operator
[Python] Was tun, wenn ein Fehler im Zusammenhang mit der SSL-Authentifizierung zurückgegeben wird?
[Python] Was ist Pandas Series und DataFrame?
[Python] Was wird durch Mehrfachvererbung geerbt?
Was ist NaN? NaN Zoya (Python) (394 Tage zu spät)
Was für eine Programmiersprache ist Python?
Was ist "Mahjong" in der Python-Bibliothek? ??
[Statistik für Programmierer] Was ist ein Ereignis?
Was ist ein Hund? Python-Installationsvolumen
Lassen Sie uns mit Python 1 einen Investitionsalgorithmus entwickeln
Python-Algorithmus
[Anfänger / Gespeicherte Version] Was Sie mit der Programmiersprache tun können (12 Auswahlmöglichkeiten wie Ruby / Python / Java / Swift / PHP / Go)
Was ist im Docker Python-Image pfeifend?
Ich habe Python ausprobiert! ] Heute Abschluss von "Jeder Python! Was ist Python!"!
Was vergleichst du mit Python und ==?
[Einführung in die Udemy Python3 + -Anwendung] 54. Was ist Docstrings?
paiza POH ec-Kampagne (C # / Java / Python / Ruby) # paizahack_01
Eine einfache Möglichkeit, Java von Python aus aufzurufen
Sag mir, was eine gleichwinklige Abbildung ist, Python!
[Python] Typ Fehler: 'WebElement'-Objekt ist nicht iterierbar Was tun, wenn ein Fehler auftritt?