資料介紹
描述
概述
通過使用 Python 使用 Pi 制作藝術、音樂和游戲來慶祝 Pi 日。在這本 Google Colaboratory Notebook 中,您將探索 Pi 是什么、如何使用它以及一些有趣的應用程序。打開 Colab Notebook 并跟隨!
谷歌合作筆記本:https ://colab.research.google.com/drive/1scICArIp5mQC5EQkT4FtnQ9-qtw4ECzc?usp=sharing
GitHub 存儲庫:https ://github.com/mjdargen/pi/
目錄 - 使用 Pi 和 Python 制作藝術、游戲等
- 安裝依賴和下載文件
- 什么是π?
- 就 π 而言,你幾歲?
- 近似 π
- 一百萬位π
- 繪制 π 的位數分布圖
- π 和弦圖
- 蛇 - Pi 版本
- π 的二值像素圖像
- 用 π 制作音樂
- 藝術與 π & Processing
- 使用 π 找到 Kevin Bacon
第 0 步:Colab 和設置環境
Colab 簡介
Google Colaboratory 是一個使用 Jupyter Notebooks 的 Python 開發環境,可讓您連接到 Google 強大的云計算資源并運行 Python 代碼。
Pi是最臭名昭著的數字。它是唯一一個擁有廣泛認可的假期的數字——3 月 14 日的 Pi 日。在這個筆記本中,我們將探索 pi 的各個方面,并嘗試從數字中獲得一些樂趣。
第 2 步:就 Pi 而言,您幾歲?
用 pi 計算你的年齡。在指定的字段中輸入您的生日,以確定您的年齡(以 pi-years 和 pi-days 為單位)。
第 3 步:近似 Pi
使用指定數量的求和項來近似 pi。我們將使用萊布尼茨公式來逼近 π。它是一個無限交替級數,緩慢地向 pi 收斂,如下面的公式所述。
要使用該程序,請指定要使用多少項 (n) 來近似 pi。該程序將吐出生成的近似值。
第 4 步:一百萬位 Pi
查看 pi 的前 100 萬位十進制數字和 pi 的前 100 萬位十六進制數字。運行下面的單元格后,單擊輸出窗口附近的“x”以清除單元格。顯示數百萬個字符會給您的瀏覽器帶來負擔并降低筆記本的速度。
Pi的一百萬十進制數字:https ://raw.githubusercontent.com/mjdargen/pi/main/pi_dec_1m.txt
Pi的一百萬個十六進制數字:https ://raw.githubusercontent.com/mjdargen/pi/main/pi_hex_1m.txt
第 5 步:繪制 Pi 數字的分布圖
在本節中,我們將進一步檢查 pi 的前一百萬位十進制和十六進制數字。我們將繪制 pi 的位數的分布,以確定在 pi 的前一百萬位數中是否有更多出現的數字。
第一個圖將是 pi 的十進制數字,第二個圖將是 pi 的十六進制數字。這些圖表也會作為一個 interactive.html 網頁寫入“輸出”文件夾,該網頁可以在 Colab 左側的文件選項卡中下載。這些圖是使用 Plotly 條形圖生成的。
第 6 步:Pi 和弦圖
弦圖是一種特殊類型的圖表,它從圓形圖上的節點中提取邊緣或弧線。在這種情況下,我們展示了 pi 數字的進展。節點代表一個數字的每個可能值(0-9 表示十進制,0-15 表示十六進制)。弧線或邊表示從一個數字到下一個數字的轉換。例如,pi 小數點后的第一位數字是“14159”。我們將從 1 開始畫一條弧到 4,然后畫一條從 4 到 1 的弧,然后畫一條從 1 到 5 的弧,然后畫一條從 5 到 9 的弧,以此類推。
第一個圖顯示了 pi 的前一百萬個十進制數字的和弦圖。第二個圖顯示了 pi 的前一百萬個十六進制數字的和弦圖。這些圖表也會作為一個 interactive.html 網頁寫入“輸出”文件夾,該網頁可以在 Colab 左側的文件選項卡中下載。和弦圖是使用和弦模塊生成的。
第 7 步:蛇 - Pi 版本
玩 Snake 的 Pi 版本!我修改了 Snake,使蛇顯示為 π 的各個部分。蛇不是吃食物,而是試圖按順序吃 pi 的十進制數字。看看你能吃多少位數的圓周率!
注意:此代碼在 Google Colab 中無法正常運行,因此我必須嵌入我的 repl.it 項目。在此處查看源代碼。這個項目最初是從@LorenzoCampos分叉出來的,并經過調整以制作 pi 版本。查看并玩下面的游戲。
第 8 步:Pi 的二進制像素圖像
Pi 也可以表示為二進制數。為了做到這一點,我取前一百萬個十六進制數字并將其逐字節轉換為二進制數。為了可視化這些信息,我將前 100 萬個十六進制數字表示為 2000x2000 單色黑白圖像。零由黑色像素表示,而零由白色像素表示。
請參閱本節中的完整圖像。它可能會在一分鐘內顯示為純白色圖像,因為該圖像需要一段時間才能加載到 Colab 輸出窗口中。圖像也保存在“輸出”窗口中,可以在 Colab 左側的文件選項卡中下載。該腳本使用 Pillow 模塊生成圖像。
第 9 步:用 Pi 制作音樂
我們甚至可以用 pi 制作音樂。下面的腳本使用 numpy 計算波形并使用 scipy 寫入 a.wav 文件。我在piaudio.py中保留了一些代碼,以免弄亂筆記本。該文件負責將弦音符表示映射到特定頻率,并根據持續時間和 BPM 為每個音符構建選定的波形。
嘗試與筆記字典一起播放,看看你可以用 pi 發出什么樣的酷聲音。將某些數字值映射到鍵盤上的鍵。必須按照如下所示的格式寫下注釋。您還可以通過將波形參數提供給 play_note() 函數來指定所需的波形類型。它可以是正弦曲線、三角形、鋸齒形或方形。
通過使用第 20 行或第 22 行來確定是要使用 pi 的十進制數字還是十六進制數字。默認情況下,以下腳本僅使用 pi 的前 100 位數字。使用完整的 100 萬位 pi 需要很長時間才能執行。
播放窗口將顯示在輸出窗口中以預覽音頻。您也可以下載 .wav 文件。音頻也保存在“輸出”窗口中,可以在左側的文件選項卡中下載。
注釋格式說明:
- 必須以:NOTE_開頭
- 第一個字母是注釋:AG
- 如果有一個“S”,表示銳利(沒有單位)
- 數字在鍵盤上是八度,0-最低,8-最高
第 10 步:使用 Pi 和處理進行藝術創作
Processing是一種靈活的軟件速寫本,也是一種用于學習如何在視覺藝術環境中編碼的語言。它是一個免費的圖形庫和 IDE。它是用Java構建的;但是,也有Python 模式。
您無法在 Google Colaboratory 中運行處理代碼。您將需要下載 Processing 并安裝 Python 模式插件。請遵循此入門指南。
此處理腳本解析 pi 的前 10, 000 個十進制數字并將它們表示為圓圈。圓圈的顏色表示該數字的數值。
請參閱下面生成的圖形。您也可以在此處下載圖形。我提供了生成下圖的代碼。您還可以在此處從我的 GitHub 存儲庫查看/下載腳本。
第 11 步:使用 Pi 找到 Kevin Bacon
這個腳本展示了我們如何本質上使用 pi 的數字作為算法的偽隨機數生成器。
下面我們將使用 pi探索Kevin Bacon 的六度。凱文培根的六度是一個游戲/思想實驗,是“六度分離”的一個例子。“六度分離”背后的想法是,任何兩個人(平均而言)彼此相距六個或更少的社會聯系。作為探索這一點的愚蠢方式,我們將加載一個隨機的 Wikipedia 頁面并按照該頁面上的鏈接,直到我們到達 Kevin Bacon 的 Wikipedia 頁面。
我們使用隨機的維基百科頁面作為我們的起點。從那里,腳本獲取鏈接在單個頁面上的所有有效 Wikipedia 頁面的列表。然后腳本按順序使用 pi 的十六進制數字來確定我們接下來訪問的維基百科頁面之一。
下面的腳本可能需要很長時間才能執行,具體取決于它需要訪問多少頁面,直到我們找到 Kevin Bacon 的 Wikipedia 頁面。到目前為止,我需要訪問的最少頁面數是 2, 254 頁。
?
- 使用Python和Raspberry Pi的實時圖表
- Raspberry Pi Zero W和Python 3入門
- 使用ML制作Pi垃圾分類器
- 《Python編程入門》.pdf 0次下載
- Unity 3D引擎制作的憤怒的小鳥游戲 2次下載
- 使用文件保存游戲的python代碼和資料說明 11次下載
- 如何使用Python和Numpy等技術實現圖像處理 8次下載
- 使用Python實現游戲APP充值API調用的代碼實例 38次下載
- 如何使用Python編程一個石頭剪刀布游戲的小程序 26次下載
- python基礎教程之如何使用python進行環境搭建 32次下載
- 《Python開發技術詳解》-隨書附帶程序 0次下載
- 《Raspberry Pi Python 編程入門 》-電子書籍.pdf 0次下載
- 一切從游戲開始_python 7次下載
- 修改代碼藝術 0次下載
- Learn Raspberry Pi Programming with python 0次下載
- Raspberry Pi樹莓派使用Python實現MQTT通信設計 889次閱讀
- 如何搭建Python編程環境 5211次閱讀
- 利用Python找到下一個“游戲驛站” 647次閱讀
- Python版蚊子大作戰源代碼 1163次閱讀
- Python證件照制作小程序源代碼 3578次閱讀
- Python版警察抓小偷游戲源代碼 1772次閱讀
- Python-pygame 游戲開發 1516次閱讀
- RT-Badge V2.0制作俄羅斯方塊小游戲 2257次閱讀
- 基于FONA通過UART與Raspberry Pi進行通訊的方案介紹 2257次閱讀
- 基于Raspberry Pi 3 Model B+的掌上游戲機介紹 5153次閱讀
- 為什么幾百種編程語言,偏偏Python炙手可熱? 3286次閱讀
- 基于生成網絡(GAN)來輔助藝術家進行更具創意的設計項目 5316次閱讀
- Python簡直就是萬能的,你用Python都做過哪些事? 3.7w次閱讀
- Python語言在人工智能中的功能及優勢 1.1w次閱讀
- python串口編程實例 4.6w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多