[PYTHON] [Le bilinguisme est un gaspillage] Quel est votre Fibonacci préféré?

Je vous suis toujours redevable. Je suis drumath, un programmeur de lycée. Cette fois, j'écrirai un article sur la séquence de Fibonacci. Peut-être quelqu'un qui commence juste la programmation Certaines personnes peuvent se demander: «Je veux commencer à programmer, mais avec quelle langue dois-je commencer? Dans cet article, implémentons le même algorithme dans huit langages: C / C ++, Java, Python, Ruby, PHP, Perl, JavaScript et CoffeeScript! Alors peut-être pouvons-nous vous aider à choisir votre langue.

À propos de la séquence de Fibonacci

Je me suis rencontrée lorsque je passais l'examen du collège.

1,1,2,3,5,8,13,21 ...

Quel est le nombre qui suit? Au début, tout le monde sera troublé par la question. La bonne réponse est 34. Quand j'ai entendu l'explication de la somme des deux termes précédents, je l'ai trouvée vraiment mathématique et intéressante. Cependant, la véritable apparence de la séquence de Fibonacci était vraiment «mathématique». Je l'ai appris deux ans plus tard quand j'ai lu une fille de maths. Je n'en parlerai pas beaucoup ici, mais la séquence de Fibonacci est omniprésente dans la nature, comme les pommes de pin et les ratios d'or, et sa présence est noble et belle. .. .. Et même dans le monde de la programmation, il est parfois introduit avec des algorithmes du niveau débutant à intermédiaire. Je pense que c'est un exemple d'un bon algorithme qui permet aux débutants de ressentir un sentiment d'accomplissement car il est facile d'écrire du code.

Fibonacci en plusieurs langues.

2016-04-12.png

Eh bien, c'est le sujet principal. En tant que programme --Créer une fonction (ou méthode) `` fibona (num) '' qui génère une séquence de nombres fibonacci

Je vais faire un programme appelé.

C/C++ C / C ++ est un terme général pour le langage C et le langage C ++. Le langage C est le premier langage que j'ai rencontré, donc j'ai beaucoup réfléchi. La grammaire est un peu plus difficile et compliquée que les autres langues, mais elle a la vitesse de traitement la plus rapide et il n'est pas exagéré de dire que c'est la langue la plus proche de l'ordinateur. C ++ est une extension du langage C avec une orientation objet ajoutée. Il permet d'écrire du code plus facile que le langage C, et est principalement utilisé pour la programmation de jeux DirectX.

Premier à partir du langage C

fibona.c


#include <stdio.h>
void fibona(int num);

int main(void)
{
	fibona(20);
	return 0;
}

void fibona(int num)
{
	int x=1, y=1, i=0, tmp=0;
	while (i < num) {
		printf("%d\n", x);
		tmp=x;
		x=y;
		y+=tmp;
		i++;
	}
}

Et C ++

fibona.cpp



#include <iostream>

using namespace std;

void fibona(int num);

int main(void)
{
	fibona(20);
	return 0;
}

void fibona(int num)
{
	int x=1,y=1,i=0,tmp=0;
	while (i < num) {
		cout << x << endl;
		tmp=x;
		x=y;
		y+=tmp;
		i++;
	}
}

Quand j'essaye de le compiler en utilisant quelque chose appelé bcc (Borland C ++ Compile)

Console


>bcc32 fibona.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
fibona.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
>fibona.exe
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

Langage Java

Java est un langage créé sur la base de la grammaire du langage C. Je suis sûr que certains d'entre vous ont entendu le mot Java lui-même. Java s'exécute sur une machine virtuelle appelée JVM (Java Virtual Machine). Par conséquent, même une machine gagnante peut être programmée sur une machine Mac. Principalement utilisé dans la programmation Android.

fibona.java


public class fibona
{
	public static void main(String[] args) {
		fibonachi(20);
	}

	public static void fibonachi(int num)
	{
		int x=1,y=1,i=0,tmp=0;
		while(i < num){
			System.out.println(x);
			tmp=x;
			x=y;
			y+=tmp;
			i++;
		}
	}
}

Java est un langage VM, utilisez donc la commande javac pour le compiler. Cela créera un fichier de classe appelé `` fibona.class ''. Faites cela avec l'interpréteur java.

Console


>javac fibona.java
>java fibona
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

Python python est un langage de script orienté objet. Puisqu'il est exécuté ligne par ligne, il est facile à déboguer, et puisque le programme est créé avec indentation, même les débutants peuvent écrire du code facile à lire. Il dispose d'un large éventail de moyens de défense et peut être utilisé pour l'intelligence artificielle, le big data et les extensions d'application.

fibona.py


def fibona(num):
	x=1
	y=1
	i=0
	while(i<num):
		print(x)
		(x,y)=(y,x+y)
		i+=1

fibona(20)

Puisqu'il s'agit d'un langage de script, il peut être exécuté immédiatement avec des commandes Python. Au fait, tous les programmes que je vais écrire peuvent être exécutés immédiatement avec un interpréteur comme python.

Console


>python fibona.py
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

Ruby Ruby, comme Python, est un langage de script orienté objet. Comme les développeurs sont japonais, il existe de nombreux documents japonais et il est facile d'écrire du code. De plus, il existe une «programmation amusante» comme la philosophie de Ruby, et vous pouvez programmer intuitivement. C'est aussi ma langue préférée. Il semble qu'il soit souvent utilisé lors de la création d'applications Web principalement avec le framework appelé Ruby on Rails.

fibona.rb


def fibona(num)
	x=1
	y=1
	num.times do
		print "#{x}\n"
		x,y=y,x+y
	end
end

fibona(20)

Lançons-le.

Console


>ruby fibona.rb
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

PHP php est principalement utilisé pour créer des pages Web. Vous pouvez créer dynamiquement une page Web en écrivant le code php dans la balise `` ''. Les frameworks incluent CakePHP.

fibona.php


<?
function fibona($num){
	$x=1;$y=1;$i=0;
	while ($i < $num) {
		echo $x."\n";
		list($x, $y)=array($y, $x+$y);
		$i++;
	}
}

fibona(20);
?>

Console


1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

Perl Perl est principalement utilisé comme CGI Web. Perl est un vieux langage orienté objet, donc c'est aussi bien d'avoir des parties étranges que d'autres langages n'ont pas.

fibona.pl


sub fibona {
	my($num) = @_;
	$x=1; $y=1; $i=0;
	while ($i < $num) {
		print "$x\n";
		($x, $y)=($y, $x+$y);
		$i++;
	}
}

fibona(20);

Console


>perl fibona.pl
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

JavaScript C'est l'une des langues les plus excitantes de nos jours. Un langage qui vous permet d'écrire des scripts en HTML pour le développement Web. Vous pouvez créer des applications universelles pour Windows et vous pouvez également créer des applications natives telles que .exe et .app avec Electron créé par GitHub. Cette fois, j'utiliserai un outil appelé Node pour programmer js comme une application à usage général.

MyFibona.js


var fibona = function(num){
	var x=1;
	var y=1;
	var i=0;

	while (i<num) {
		var tmp;
		console.log(x);
		tmp=x;
		x=y;
		y+=tmp;
		i++;
	}
};

fibona(20);

Console


>node MyFibona.js
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

CoffeeScript CoffeeScript est un langage qui facilite l'écriture de JavaScript. Ainsi, la compilation de CoffeeScript générera du code JavaScript.

fibona.coffee


fibona = (num)->
	x=1;y=1;i=0;
	while i<num
		console.log x
		[x,y] = [y,x+y]
		i++

fibona(20)

Console


>coffee -c fibona.coffee

Code généré

fibona.js


// Generated by CoffeeScript 1.10.0
(function() {
  var fibona;

  fibona = function(num) {
    var i, ref, results, x, y;
    x = 1;
    y = 1;
    i = 0;
    results = [];
    while (i < num) {
      console.log(x);
      ref = [y, x + y], x = ref[0], y = ref[1];
      results.push(i++);
    }
    return results;
  };

  fibona(20);

}).call(this);

Console


>node fibona.js
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

en conclusion

Et ça? Les langues ont également des personnalités diverses et sont intéressantes. Vous pouvez également voir que des dessins animés anthropomorphes apparaîtront. Quand j'apprends une nouvelle langue, j'ai l'impression d'être dans un nouveau pays. Parlez à votre ordinateur selon les règles du pays. J'avais l'habitude de penser que «la programmation est quelque chose que fait la science?», Mais comme le mot «langage» l'indique, le plaisir linguistique est venu au premier plan. Il n'y a rien de tel qu'apprendre à l'école, passer un examen, faire des devoirs, etc. comme le japonais et l'anglais, et il est également intéressant que ce soit plus facile que ceux-là. C'est pourquoi c'est un gaspillage d'être bilingue.

Recommended Posts

[Le bilinguisme est un gaspillage] Quel est votre Fibonacci préféré?
C'est un Mac. Qu'est-ce que la commande Linux Linux?
Utilisez un GPU gratuit dans votre environnement préféré