簡體   English   中英

在 Ulam 序列 C 中查找數字

[英]Find number in Ulam Sequence C

我希望能夠創建 Ulam 編號序列並能夠找到第 n 個 Ulam 編號。 例如,如果您的輸入為“8”,則輸出應為 13。如果輸入為 700,則輸出應為第 700 個烏拉姆數(不知道具體是什么)。 前兩個數字是 1 和 2。

我想我需要一個初始化為 1 和 2 的數組,並使用雙循環通過檢查下一個數字是否是具有唯一表示的最小可能值來獲取下一個數字。

我只是不確定如何在 C 中編碼。但是,即使是偽代碼也能幫助我解決這個問題。 任何幫助表示贊賞。

Ulam 序列中的Ulam 數必須只能以一種方式表示為它的兩個前輩之和。

注意兩個前輩並不是“獨立”的——如果你選擇一個,那么你可以計算第二個。

示例:序列以數字 1、2、3、4、6、8、11、13、16、18 開始。

例如 21 是下一個數字嗎? 開始檢查所有以前的數字,如下所示:

  • 假設總和的元素之一是1 然后1 + x = 21 對於這里, x = 21 - 1 = 20 20是序列的一個元素嗎? 不。
  • 假設總和的元素之一是2 然后2 + x = 21 對於這里, x = 21 - 2 = 19 19是序列的一個元素嗎? 不。
  • 假設總和的元素之一是3 然后3 + x = 21 對於這里, x = 21 - 3 = 18 18是序列的一個元素嗎? 是的 => 我們找到了一種表示: 21 = 3 + 18
  • 假設總和的元素之一是4 然后4 + x = 21 對於這里, x = 21 - 4 = 17 17是序列的一個元素嗎? 不。
  • 假設總和的元素之一是6 然后6 + x = 21 對於這里, x = 21 - 6 = 15 15是序列的一個元素嗎? 不。
  • 假設總和的元素之一是8 然后8 + x = 21 對於這里, x = 21 - 8 = 13 13是序列的一個元素嗎? 是 => 我們找到了另一種表示: 21 = 8 + 13 ,所以21不是序列的成員。

因此,要檢查一個數字是否是序列的成員,您需要檢查它的所有前輩。

如果您按照描述的方式檢查所有數字,您將一一發現序列中的所有成員。 到達所需索引時停止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM