R語言中repeat循環的使用方法之素數和斐波那契數列前n項

2021-01-15 翔宇亭IT樂園

R語言提供了三種循環方法:for循環、while循環和repeat循環。

for循環和while循環在本號前面兩篇文章已經介紹過了,這篇文章將詳細介紹repeat循環的使用方法。

repeat循環概述

repeat循環的語法格式如下:

repeat{ 循環語句 }

repeat循環是一種無條件循環,它需要在循環體中設置終止條件,並使用break語句進行退出。其執行過程可以使用下圖來表示:

repeat循環

例子1:求1~100之間整數和

在R中新建程序腳本編寫代碼如下圖所示:

使用repeat求1~100之間的整數和

在R中運行後的效果如下圖:

運行結果1

例子2:找出向量中第一個大於N的數並輸出其索引

這個在其它語言中,一般使用數組來存儲數字,使用循環訪問每個元素並與指定的N進行比較,如果比N大,則記錄這個數字和位置,並退出循環。在R新建程序腳本如下:

求向量中第一個大於N的數

在R中的執行情況如下圖所示:

例子3:求100以內的所有素數。

#求出100以內的所有素數

n <- 2 #從2開始判斷

repeat #循環要判斷的數字

{

if(n >= 100) #如果超過100,則跳出

break;

j <- 2 #用2~n的數j去除n

repeat #循環2~n

{

if(n %% j == 0 || j>n)

break

j <- j + 1

}

if( j >= n) #如果j>=n說明n是素數

print(n)

n <- n + 1

}

這裡使用了兩個repeat循環。在R程序如下:

輸出100以內的素數

運行結果如下:

素數輸出結果

例子4:求Fibonacci數列前N項

在本號前面的文章中,曾使用for循環,while循環實現了求斐波那契數列前n項的方法,這裡再使用repeat循環來實現其算法,詳細的代碼如下所示:

#求Fibonacci數列前N項

N <- 20

F <- NA

F[1]<-F[2]<-1

i <- 3

repeat

{

if(i > N)

break

F[i] <- F[i-2] + F[i-1]

i <- i + 1

}

print(F)

在編輯器中的效果如下圖所示:

求斐波那契數列前n項

運算結果如下圖所示:

斐波那契數列前n項結果

怎麼樣,repeat循環其實很簡單,它就是個死循環,需要在循環體中設置終止條件,滿足條件時執行break語句從而跳出循環體。

歡迎關注本號,本號會定期更新R語言方面的文章,內容將由淺入深,由基本語法到實際數據分析應用,如果你喜歡,請關注本號,系統會自動推送給你。

相關焦點

  • 遞歸和循環計算斐波那契數列第n項的值
    遞歸和循環計算斐波那契數列第n項的值。遞歸的底層實現原理。開始計算斐波那契數列第n項的值。斐波那契數列 斐波那契數列,是數學家以兔子繁殖為例子引入,又稱為兔子數列。如下:1、1、2、3、5、8、12、21、34…第一項和第二項為1,其後,每一項都是它之前兩項的和。
  • python邏輯控制總結——斐波那契數列
    控制臺更多的PyCharm的工具的使用,同學們可以自行百度和熟悉。斐波那契數列斐波那契數列在數學上,是一個特殊的數列,它的特徵如下:1. 第一項和第二項均為1。斐波那契數列代碼1運行結果如下:核心邏輯是根據while後面的判斷條件進行判斷,判斷為True,則不斷重複執行循環體中的內容,直接判斷為False或手動跳出循環。如在計算斐波那契數列時,要求輸出前10項,我們就定義了一個變量 i,初始值為1。while進入的條件為i <= 10,在循環體中,有一個對 i 的修改,即 i += 1,每次都加1。
  • 小學生也可以寫出的,複雜數列-斐波那契數列
    數列前兩項之和等於第三項如果設F(n)為該數列的第n項(n∈N*),那麼這句話可以寫成如下形式::F(n)=F(n-1)+F(n-2)以上就是斐波那契數列的官方定義。其實只要把數列擺出來,我們就可以很明確的看到特性了。1,1,2,3,5,8,13,21,34...
  • 斐波那契數列為什麼那麼重要,所有關於數學的書幾乎都會提到?
    下面我就盡我所能,講述一下斐波那契數列。一、起源和定義斐波那契數列最早被提出是印度數學家Gopala,他在研究箱子包裝物件長度恰好為1和2時的方法數時首先描述了這個數列。也就是這個問題:有n個臺階,你每次只能跨一階或兩階,上樓有幾種方法?
  • 高中數學:求數列前n項和的7種方法
    求數列的前n項和要藉助於通項公式,即先有通項公式,再在分析數列通項公式的基礎上,或分解為基本數列求和,或轉化為基本數列求和。當遇到具體問題時,要注意觀察數列的特點和規律,找到適合的方法解題。一、用倒序相加法求數列的前n項和如果一個數列{an},與首末項等距的兩項之和等於首末兩項之和,可採用把正著寫與倒著寫的兩個和式相加,就得到一個常數列的和,這一求和方法稱為倒序相加法。
  • python迭代器和生成器總結——新的斐波那契數列
    在上面的demo裡,由於我們用了一個while True無限循環,所以,每次當a += 1執行完後,會再次循環執行到yield a。直接 a > 10。前面一篇文章裡我們聊到了斐波那契數列的demo,當時一個用for循環實現的代碼如下:
  • 《等比數列前n項和》說課稿
    尊敬的各位考官大家好,我是今天的X號考生,今天我說課的題目是《等比數列前n項和》。新課標指出:數學課程要面向全體學生,適應學生個性發展的需要,使得人人都能獲得良好的數學教育,不同的人在數學上都能得到不同的發展。今天我將貫徹這一理念從教材分析、學情分析、教學過程等幾個方面展開我的說課。
  • 利用斐波那契數列實現英裡和公裡轉換
    將斐波那契數列與黃金分割率聯繫起來正如標題所承諾的,我將展示斐波那契數列如何將英裡轉換為公裡,但是首先我們需要在斐波那契數列(F(n))和黃金比率(φ)之間建立一個連接。為了做到這一點,我們將使用比奈公式(Binet’s formula):
  • 奇數項和偶數項是不同的等比數列,如何求前n項和,這方法不錯
    高考數學複習,奇數項和偶數項是不同的等比數列,如何求前n項和,這方法不錯。這種數列的特點是:奇數項和偶數項是公比相同而首項不同的等比數列,下面所講的前n項和的求法也僅適用於這一種數列。如果公比不同,就不能使用這種方法,在以後的課程中會詳細講解。
  • 斐波那契數列有多神奇?
    奇妙的性質斐波那契數列是一個非常有趣、有用而且有名的數列,它有許多奇妙的性質,數學家對它的研究至今沒有停止。下面簡單介紹幾項。用斐波那契數列的前六個數 1, 1, 2, 3, 5, 8 為邊長的 6 個正方形,可以拼成一個邊長為 8 和 13 的矩形:
  • 求職乾貨:再也不怕面試官問斐波那契數列了! - CSDN
    作者 | 守望責編 | 胡巍巍前言假如面試官讓你編寫求斐波那契數列的代碼時,是不是心中暗喜?不就是遞歸麼,早就會了。如果真這麼想,那就危險了。遞歸解法遞歸,在數學與計算機科學中,是指在函數的定義中使用函數自身的方法。
  • 最美的數列-斐波那契數列
    其寫於1202年的著作《計算之書》中包涵了許多希臘、埃及、阿拉伯、印度、甚至是中國數學相關內容。斐波那契數列, 就是由這位義大利著名數學家萊昂納多·斐波那契在《計算之書》中以兔子繁殖為例子而提出的數列,故又稱為「兔子數列」。斐波那契數列:1、1、2、3、5、8、13、21、34、56……這個數列的特點是從第3項開始,每一項都是前兩項的和。
  • 斐波那契數列的兩個令人著迷的特性 - 電子通信和數學
    斐波那契數列是一個眾所周知的且經過研究的數字序列,經常在學校和休閒數學中使用,因為它很容易被那些受過有限的專業數學教育的人理解。序列的定義如下:第一項是零,第二項是一,任何其他項都是序列前兩項的和。這個序列的正式寫法如下當n> 1時。
  • 方法技巧|求數列前n項和的常用方法(8種方法)
    二、倒序相加法如果一個數列,與首末兩端等「距離」的兩項的和相等或等於同一常數,那麼求這個數列的前項和即可用倒序相加法。如:等差數列的前項和即是用此法推導的,就是將一個數列倒過來排列(反序),再把它與原數列相加,就可以得到前n項和三、錯位相減法適用於差比數列(即等差乘以等比的數列)即把每一項都乘以的等比數列的公比,向後錯一項,再對應同次項相減,即可轉化為等比數列求和。如:等比數列的前項和就是用此法推導的。
  • 我居然從一隻貓身上學到了斐波那契數列
    斐波那契數列(Fibonacci sequence)是由數學家列昂納多·斐波那契定義的把它寫成數列的形式是這樣的:可以發現,這個數列從第三項開始,每一項都等於前兩項之和,即 F n+1 = F n + F n-1 。而寫成通項公式就是:
  • 多項式與等比數列乘積的前n項和的求解思路
    上篇文章中講到,等差數列和等比數列的通項公式,並分別推導了其前n項和公式。等差數列前n項和公式的推導用到了倒序相加法,等比數列前n項和公式用到了錯位相減法。雖然這兩種數列是最簡單、最基礎的數列,但從其前n項和的推導過程中,我們能夠學習和借鑑到其中的方法,下面我將演示利用錯位相減法求解更複雜的數列的前n項和。複雜數列構造及求解例如,定義這樣一種數列c,它的通項公式可寫成等差數列第n項和等比數列第n項乘積的形式。我們如何求解數列c的前n項和表達式?
  • 非常奇妙:黃金分割率、斐波那契數列、楊輝三角與易經河洛的關係
    21、34、……在數學上,斐波納契數列以如下被以遞歸的方法定義:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從1963起出版了以《斐波納契數列季刊》為名的一份數學雜誌,用於專門刊載這方面的研究成果。
  • Fibonacci 斐波那契數列的幾種寫法、時間複雜度對比
    我看在家修煉編程技術是不錯的選擇,「用Python實現斐波那契數列」是我們在知識星球中每周給大家安排的一道題,你也可以先思考一下有哪些實現方法,說不定哪天面試就能派上用場,終有一日當上CTO贏取白富美從此走上人生巔峰。
  • 教學研討|2.5 等比數列的前n項和
    從在教材中的地位與作用來:看《等比數列的前n項和》是數列這一章中的一個重要內容,它不僅在現實生活中有著廣泛的實際應用,如儲蓄、分期付款的有關計算等等,而且公式推導過程中所滲透的類比、化歸、分類討論、整體變換和方程等思想方法,都是學生今後學習和工作中必備的數學素養。
  • Python 揭秘斐波那契定律,如何幫助碼農分析股票?|技術頭條
    在數學上,我們可以用遞歸的方法來定義斐波納契數列的生成規律,如下所示:當n=0時,F(n)=0當n=1時,F(n)=1當n>1時,F(n)= F(n-1)+ F(n-2)(3) 斐波那契數列神奇之處在哪?斐波那契數列存在許多神奇的性質,我們不妨對斐波那契數列中相鄰的兩個數求商值。