Автор оригинала: Robin Andrews.
Вы когда-нибудь задумывались, что звучат первые 500 простых чисел? (Конечно, у вас есть). Ну, удивляйтесь, больше не, как с помощью Python, легко выяснить!
Неизвестно, что не известно, что простые простые, факт, которые оказывали тантализованные математики с древних времен, так как там, тем не менее, оттенки рисунка – своего рода упорядоченные хаос, вы будете. Например, в звуковом зажиме выше, вы можете услышать, как более высокие ноты (представляющие простые номера) часто приходят в пары? Они известны как Двойные пребывания Отказ
Что еще вы заметите, когда вы слушаете трек?
Трек был сделан с использованием Jython Music который является совершенно свободным, открытым исходным проектом, который облегчает исследование звука с Python Easy и Fun. Вы также можете Сделать музыку в вашем браузере с Jython Music Отказ
Есть также Отличная книга Доступна, которая исследует компьютерные науки посредством создания музыки используя Jython Music.
Для тех, кто интересно попробовать сами, Скачать Jython Music (или использовать Эта ссылка в онлайн-версии), откройте новый файл, вставьте в код ниже и нажмите PLAY. Конечно, вы можете экспериментировать, изменив некоторые значения, чтобы увидеть, что произойдет. Например, вы можете легко ускорить/замедлить деталь, регулируя значение температуры.
from music import *
def isprime(n):
"""Check if integer n is a prime."""
# make sure n is a positive integer
n = abs(int(n))
# 0 and 1 are not primes
if n < 2:
return False
# 2 is the only even prime number
if n == 2:
return True
# all other even numbers are not primes
if not n & 1:
return False
# range starts with 3 and only needs to go up the squareroot of n
# for all odd numbers
for x in range(3, int(n ** 0.5) + 1, 2):
if n % x == 0:
return False
return True
# create lists of pitches and durations
pitches1 = []
durations1 = []
for n in range(500):
if isprime(n):
pitches1.append(67)
durations1.append(0.1)
else:
pitches1.append(60)
durations1.append(0.1)
# create an empty phrase, and construct piece using pitch/rhythm data
piece = Phrase()
piece.addNoteList(pitches1, durations1)
# set the instrument and tempo for the piece
piece.setInstrument(35)
piece.setTempo(60)
# play it
Play.midi(piece)
Повеселись!