」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP 程式計算沒有連續 1 的二進位字串的數量

PHP 程式計算沒有連續 1 的二進位字串的數量

發佈於2024-11-04
瀏覽:948

PHP Program to Count Number of Binary Strings without Consecutive 1’s

什麼是不連續 1 的二進位字串的 Count 個數?

讓我們考慮一個例子來解釋計算沒有連續 1 的二進位字串的概念。

例子

假設我們要統計長度為3且不包含連續1的二進位字串的數量。二進位字串是僅由 0 和 1 組成的字串。

長度為 3 的可能二進位字串為:000、001、010、011、100、101、110 和 111。

但是,我們只需要計算那些沒有連續 1 的二進位字串。因此,我們需要從計數中排除字串 011、101 和 111。

我們來分析一下剩下的二進位字串:

  • 000:這是一個有效的字串,因為它沒有連續的 1。

  • 001:這是一個有效的字串,因為它沒有連續的 1。

  • 010:這是一個有效的字串,因為它沒有連續的 1。

  • 100:這是一個有效的字串,因為它沒有連續的 1。

  • 110:這是一個無效字串,因為它有連續的 1。

從上面的分析可以看出,長度為3的有效二進位串有4個,且沒有連續的1。

PHP 程式計算沒有連續 1 的二進位字串的數量

方法1-使用動態規劃

例子


輸出

Number of binary strings without consecutive 1's: 13

代碼說明

此 PHP 程式碼定義了一個名為 countBinaryStrings 的函數,該函數使用動態程式計算長度為 $n 且不包含連續 1 的二進位字串的數量。它使用基本情況$dp[0] = 1 和$dp[1] = 2 初始化數組$dp,表示字串的計數長度分別為0和1。然後,它使用循環透過長度 $i - 1 和 $i - 的計數求和來填充長度 2 到 $n 的剩餘計數。 2. 最後,它返回長度 $n 的計數並列印它。在此特定範例中,程式碼計算長度為 5 且沒有連續 1 的二進位字串的數量並顯示結果。

方法2


輸出

Number of binary strings without consecutive 1's: 13

代碼說明

此 PHP 程式碼計算長度為 $n 且不含兩個連續 1 的不同二進位字串的數量。它定義了兩個數組,$a 和 $b,來儲存計數。基本情況設定為 $a[0] = $b[0] = 1。然後,使用循環計算長度 1 到 $ 的計數n-1。長度$i 的計數是透過將陣列$a 中的長度$i-1 的計數與長度$[ 的計數相加而獲得的&&&]i-1 來自數組$b。另外,數組$b 中長度$i 的計數是從數組$ 中長度$i-1 的計數獲得的一個。最後,代碼傳回數組$a 中長度$n-1 的計數與數組$n-1 長度的計數之和&&&]$ b,表示不連續1的二進位串總數。在此特定範例中,程式碼計算長度為 5 的計數並顯示結果。 結論

總之,第一種方法利用動態編程,用基本情況初始化數組並迭代計算較大長度的計數。它透過將前兩個長度的計數相加來有效地計算結果。第二種方法採用更簡單的方法,使用兩個陣列來儲存計數,並根據先前長度的計數迭代更新它們。它直接計算總計數,無需分別對兩個數組求和。這兩種方法都可以對沒有連續 1 的二進位字串進行精確計數,並且它們之間的選擇可能取決於特定要求和效能考慮。

版本聲明 本文轉載於:https://www.tutorialspoint.com/php-program-to-count-number-of-binary-strings-without-consecutive-1-rsquo-s如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    程式設計 發佈於2025-07-16
  • Python中嵌套函數與閉包的區別是什麼
    Python中嵌套函數與閉包的區別是什麼
    嵌套函數與python 在python中的嵌套函數不被考慮閉合,因為它們不符合以下要求:不訪問局部範圍scliables to incling scliables在封裝範圍外執行範圍的局部範圍。 make_printer(msg): DEF打印機(): 打印(味精) ...
    程式設計 發佈於2025-07-16
  • 如何在Java字符串中有效替換多個子字符串?
    如何在Java字符串中有效替換多個子字符串?
    在java 中有效地替換多個substring,需要在需要替換一個字符串中的多個substring的情況下,很容易求助於重複應用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    程式設計 發佈於2025-07-16
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-07-16
  • Python元類工作原理及類創建與定制
    Python元類工作原理及類創建與定制
    python中的metaclasses是什麼? Metaclasses負責在Python中創建類對象。就像類創建實例一樣,元類也創建類。他們提供了對類創建過程的控制層,允許自定義類行為和屬性。 在Python中理解類作為對象的概念,類是描述用於創建新實例或對象的藍圖的對象。這意味著類本身是使用...
    程式設計 發佈於2025-07-16
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-07-16
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-07-16
  • CSS可以根據任何屬性值來定位HTML元素嗎?
    CSS可以根據任何屬性值來定位HTML元素嗎?
    靶向html元素,在CSS 中使用任何屬性值,在CSS中,可以基於特定屬性(如下所示)基於特定屬性的基於特定屬性的emants目標元素: 字體家庭:康斯拉斯(Consolas); } 但是,出現一個常見的問題:元素可以根據任何屬性值而定位嗎?本文探討了此主題。 的目標元素有任何任何屬性值,...
    程式設計 發佈於2025-07-16
  • 如何使用Regex在PHP中有效地提取括號內的文本
    如何使用Regex在PHP中有效地提取括號內的文本
    php:在括號內提取文本在處理括號內的文本時,找到最有效的解決方案是必不可少的。一種方法是利用PHP的字符串操作函數,如下所示: 作為替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式來搜索特...
    程式設計 發佈於2025-07-16
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-07-16
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-07-16
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-07-16
  • 為什麼HTML無法打印頁碼及解決方案
    為什麼HTML無法打印頁碼及解決方案
    無法在html頁面上打印頁碼? @page規則在@Media內部和外部都無濟於事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: ...
    程式設計 發佈於2025-07-16
  • 使用jQuery如何有效修改":after"偽元素的CSS屬性?
    使用jQuery如何有效修改":after"偽元素的CSS屬性?
    在jquery中了解偽元素的限制:訪問“ selector 嘗試修改“:”選擇器的CSS屬性時,您可能會遇到困難。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    程式設計 發佈於2025-07-16
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    程式設計 發佈於2025-07-16

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3