Qu'est-ce que l'algorithme [Ruby / Python / Java / Swift / JS]?

Raisons d'écrire cet article

  1. Résumez votre propre connaissance des algorithmes (assez approximatif)
  2. Vérifiez quand vous oubliez

Qu'est-ce qu'un algorithme?

Définition large

"Une série d'étapes pour faire le travail" [^ 1]

Il existe également un «algorithme» dans la vie de tous les jours.

Problème: je veux faire cuire du riz brun (nouveau riz) [^ 2] délicieusement.

Comment faire cuire un délicieux riz brun (= ceci est ** "algorithme" **)

  1. Après avoir lavé le riz brun, laissez-le absorber de l'eau pendant 12 à 24 heures.
  2. Ajoutez la même tasse d'eau, de sel et de saké que le riz brun.
  3. Chauffer à feu moyen pour qu'il bout en 10 minutes, et quand il bout, chauffer à feu doux pendant 15 minutes.
  4. Éteignez le feu et cuire à la vapeur pendant 15 minutes.

Si vous suivez la méthode de cuisson de ▲, vous pouvez cuisiner délicieusement avec une cuisinière à gaz, une cuisinière électrique ou une IH. ▲ En premier lieu, vous pouvez cuisiner avec un cuiseur à riz sans cuisson dans une casserole.

Un exemple d '"algorithme" secouant le marché [^ 3]

6 mai 2010 14:47 (heure de l'Est) La moyenne Dow a chuté de 1000 $ en 3 minutes (= ** Flash Crash **)

Raisons possibles de ce phénomène: détails encore inconnus

・ À cette époque, il y avait un sentiment de crise dans le monde entier selon lequel le gouvernement grec ferait défaut, et lorsque cela se produisait, il y avait une peur de tomber dans une crise financière mondiale. ・ L'algorithme utilisé par un gestionnaire de fonds a vendu pour 4 milliards de dollars de contrats à terme sur actions trop rapidement, et d'autres algorithmes ont répondu. ・ Plusieurs commerçants se sont entendus et ont tenté de plonger le marché en utilisant plusieurs algorithmes

"Algorithme" dans le monde informatique

Récursif

Ecrire un algorithme pour trouver la hiérarchie en utilisant la récurrence (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/Résultat de sortie JS


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

Résultat de sortie Java


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

Autres algorithmes

Recherche linéaire Dichotomie Recherche de hachage

Modifier l'historique

2018/11/03 Publié 2018/11/19 Ajout du code JS et changement de titre 2018/12/01 Ajout d'un lien pour la recherche linéaire 2018/12/02 Lien ajouté pour la recherche de dichotomie / hachage

Matériel de référence

・ Christopher Steiner (Traduction: Ryo Nagamine) "Les algorithmes dominent le monde" (KADOKAWA, 2013) ・ Thomas H. Colmen (Traduction: Takahiro Nagao) "Bases des algorithmes" (Nikkei BP, 2016) ・ Nobuhiro Shibata "Algorithmes et structures de données Java nouveaux et clairs" (SB Creative, 2017)

[^ 1]: "Bases de l'algorithme" p15 [^ 2]: Je cuisine du riz dans une marmite parce que je n'ai pas de cuiseur à riz à la maison et je ne veux pas augmenter les choses autant que possible. [^ 3]: "Les algorithmes dominent le monde" pp.5-10

Recommended Posts

Qu'est-ce que l'algorithme [Ruby / Python / Java / Swift / JS]?
Qu'est-ce qu'un algorithme? Introduction à l'algorithme de recherche] ~ Python ~
[Swift / Ruby / Python / Java] Programmation orientée objet
Python> Qu'est-ce qu'une tranche étendue?
Qu'est-ce que python
Qu'est-ce que Python
[Python] Qu'est-ce que Pipeline ...
Qu'est-ce qu'un itérateur?
[Python] Qu'est-ce que virtualenv
Java VS PHP VS Python VS Ruby
Python est un langage pour adultes
Qu'est-ce qu'une variable d'instance?
[Python] Python et sécurité-① Qu'est-ce que Python?
[Python] * args ** Qu'est-ce que kwrgs?
Cours de base Python (1 Qu'est-ce que Python)
[Python] Qu'est-ce qu'une fonction zip?
[Python] Qu'est-ce qu'une instruction with?
[Python] Qu'est-ce que @? (À propos des décorateurs)
Développons un algorithme d'investissement avec Python 2
[python] Quelle est la clé triée?
Python pour la déclaration ~ Qu'est-ce qui est itérable ~
Ruby Python Java Tri insensible à la casse
À quoi sert le trait de soulignement Python (_)?
Python in est aussi un opérateur
[Python] Que faire lorsqu'une erreur liée à l'authentification SSL est renvoyée
[Python] Qu'est-ce que la série pandas et DataFrame?
[Python] Qu'est-ce qui est hérité par l'héritage multiple?
Qu'est-ce que NaN? NaN Zoya (Python) (394 jours de retard)
Quel type de langage de programmation est Python?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
[Statistiques pour les programmeurs] Qu'est-ce qu'un événement?
Qu'est-ce qu'un chien? Volume d'installation Python
Développons un algorithme d'investissement avec Python 1
Algorithme Python
[Version débutant / enregistrée] Ce que vous pouvez faire avec le langage de programmation (12 sélections telles que Ruby / Python / Java / Swift / PHP / Go)
Qu'est-ce que wheezy dans l'image Docker Python?
J'ai essayé Python! ] Diplômé aujourd'hui de "Tout le monde Python! Qu'est-ce que Python!"!
Que comparez-vous avec Python et ==?
[Introduction à l'application Udemy Python3 +] 54. Qu'est-ce que Docstrings?
paiza POH ec-campagne (C # / Java / Python / Ruby) # paizahack_01
Un moyen simple d'appeler Java depuis Python
Dites-moi ce qu'est une cartographie équiangulaire, Python!
[Python] Erreur de type: l'objet 'WebElement' n'est pas itérable Que faire lorsqu'une erreur se produit