<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

同構數的概念

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-07 16:21 ? 次閱讀

今天看到一個比較有意思的概念,叫做同構數。同構數是一個數字,它的平方數與數字本身的尾數相同。

例如,25是一個同構數,因為25的平方是625,它的結尾是25。同樣地,76是一個同構數,因為76的平方是5776,同樣以76結尾。

判斷一個數是否是同構數

有許多算法可以用來確定一個數字是否是同構,接下來我們選幾種來看看。

在數字上循環并進行比較

驗證一個數字是否同構大概有以下幾個步驟:

  1. 計算數字平方數
  2. 獲取平方數的最后一位數字并與數字的最后一位數字進行比較 如果最后一位數字不相等,則該數字不是一個同構數 如果最后一位數字相等,則進入下一步
  3. 刪除數字和平方的最后一位數字
  4. 重復步驟2/3,直到數字的所有數字都得到比較

上述方法以相反的方式對輸入數字的數字進行循環。

我們現在寫一個Java程序來實現, isAutomorphicUsingLoop()方法將一個整數作為輸入,并檢查它是否是同構數。

public boolean isAutomorphicUsingLoop(int number) {
    int square = number * number;

    while (number > 0) {
        if (number % 10 != square % 10) {
            return false;
        }
        number /= 10;
        square /= 10;
    }
    
    return true;
}

在任何一個步驟,如果最后一位數字不相等,我們就返回false 。否則,我們就去掉最后一個數字,對number的剩余數字重復這個過程。

我們可以通過以下的代碼來驗證這個方法是否可行。

測試用例:

assertTrue(AutomorphicNumber.isAutomorphicUsingLoop(76));
assertFalse(AutomorphicNumber.isAutomorphicUsingLoop(25));

直接比較數字

當然我們還可以用更直接的方法來確定一個數字是否是同構數。

  1. 得到數字并計算數字的位數n
  2. 計算數字的平方數
  3. 從平方數中得到最后的n個數字,如果平方數中的最后n個數字與原始數字相同,則該數字是同構的,否則就不是同構數

在這種情況下,我們不需要對數字的位數進行循環。我們可以直接使用Math庫來完成數字的長度以及平方數的最后幾位的計算。

代碼示例:

public boolean isAutomorphicUsingMath(int number) {
    int square = number * number;

    int numberOfDigits = (int) Math.floor(Math.log10(number) + 1);
    int lastDigits = (int) (square % (Math.pow(10, numberOfDigits)));

    return number == lastDigits;
}

與第一種方法類似,我們先計算number的平方?,F在我們不是逐一比較numbersquare的最后一位數字,而是通過使用 Math.floor() 一次性得到 number 的總的 numberOfDigits 。然后通過使用 Math.pow()square提取盡可能多的數字。最后,我們將輸入的number與提取的數字lastDigits進行比較。

如果numberlastDigits相等,這個數字就是同構的,我們返回 true ,否則,我們返回 false 。

測試用例:

assertTrue(AutomorphicNumber.isAutomorphicUsingMath(76));
assertFalse(AutomorphicNumber.isAutomorphicUsingMath(25));

總結

在這篇文章中,我們了解了什么是同構數,還學習了幾種確定一個數是否為同構數的方法,以及相應的Java程序。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數字
    +關注

    關注

    1

    文章

    1691

    瀏覽量

    51118
  • 代碼
    +關注

    關注

    30

    文章

    4588

    瀏覽量

    67222
  • java程序
    +關注

    關注

    0

    文章

    12

    瀏覽量

    7550
收藏 人收藏

    評論

    相關推薦

    基于Iceberg概念格疊置半集成的全局閉頻繁項集挖掘算法

    成構造全局Iceberg概念格的可行性,進而提出一個基于Iceberg概念格疊置半集成的頻繁概念生長分布算法(Frecogd),并且把它應用于同構分布式環境下的全局閉頻繁項集挖掘過程中
    發表于 04-24 10:02

    labview尋找同構,你準備好了嗎?

    本帖最后由 zhihuizhou 于 2011-12-15 17:13 編輯 同構 是會出現在它的平方的右邊的 , 例如 5*5=25 (5在25的右邊) , 6×6=36 (6在36
    發表于 12-13 15:48

    labview同構最快和最小VI程序展示

    本帖最后由 zhihuizhou 于 2011-12-15 17:21 編輯 同構題目要求:https://bbs.elecfans.com
    發表于 12-15 17:11

    如何理解:減少信號中的采樣

    各位大哥,俺是菜鳥,需要從0開始學起,求大哥們指教。請問,如何理解附圖中的如何理解:減少信號中的采樣或推薦一下,我上哪去找相關的概念?截圖來自labview2011入門指南,就是啟動窗口幫助欄的那一個。謝謝各位。
    發表于 09-27 08:47

    如何理解電子專業招聘要求精通模電電?

    經??吹秸衅感畔⒁缶k?b class='flag-5'>數電?這到底是什么意思,怎樣才叫做精通模電電?怎樣才叫做看懂電路圖?怎樣才叫做有基礎?突然想到這幾個模糊的概念,一直卡著好多年。
    發表于 04-03 15:12

    步進電機相關參數的概念是什么?

    一、步進電機相關概念 步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖。 角位移:角位移就是步進電機的轉軸轉動行駛的位移。1.步進電機的相、線、極性...
    發表于 07-07 08:03

    介紹步進電機使用的幾個概念

    1.步進電機使用的幾個概念:電機轉動一圈的脈沖=(步進電機)一圈的脈沖 =細分數*每轉脈沖*減速比。=(無刷伺服電機)一圈的脈沖 =
    發表于 07-07 07:18

    信號量–使用許可的概念

    永磁同步電機 除了基于每個Java對象具有的鎖定位的通用同步外,您還可以使用Java中更復雜的同步器,例如: 信號量–使用許可的概念表示一個位置中允許的最大線程。 當使用值1時,其行為類似于同步
    發表于 08-27 06:04

    加性細胞自動機的同構性分析

    根據矩陣方程理論和細胞自動機原理,提出了加性細胞自動機狀態轉移結構的同構性方法,該方法利用狀態轉移矩陣方程及其特征多項式分析規則90和150加性細胞自動機,證明了特
    發表于 02-28 17:03 ?35次下載

    由跨導運放和普通運放共同構成的壓控均衡器

    由跨導運放和普通運放共同構成的壓控均衡器
    發表于 02-25 23:15 ?1256次閱讀
    由跨導運放和普通運放共<b class='flag-5'>同構</b>成的壓控均衡器

    同構和異構設計的再思考

    同構和異構設計的再思考 早在2001年,我曾寫過一篇專欄文章,內容是關于在針對信號處理的應用中,采用異質結構設計所具備的優點。我的依據是:信號處理應用一般包
    發表于 10-09 08:09 ?2943次閱讀

    前端同構MVC實踐分析

    1、同構概念和意義 1.1、isomorphic 是什么? isomorphic,讀作[?a?s?m?:f?k],意思是:同形的,同構的。 維基百科對它的描述是:同構是在數學對象之間
    發表于 09-30 13:07 ?0次下載

    基于導數序列的時間序列同構關系

    時間序列同構關系,經過數學推導給出了時間序列同構關系判定的法則,并基于此提出了同構關系時間序列片段發現的算法。該算法首先對原始時間序列進行預處理,然后分段擬合后對各時間序列分段進行同構
    發表于 12-12 15:52 ?0次下載
    基于導數序列的時間序列<b class='flag-5'>同構</b>關系

    分布式K-自同構社會網絡隱私保護算法

    云平臺作為存儲和處理分析大規模社會網絡數據的工具逐漸變為主流,針對大規模社會網絡子圖匹配隱私保護問題,提岀分布式K-自同構社會網絡隱私保護算法,保護上傳至云平臺的社會網絡圖的結構隱私。通過節點間傳遞
    發表于 05-12 11:35 ?4次下載

    多核同構SMP--調度算法分析

    隨著智能化產品的需求不斷提高,慢慢的單芯片單核處理器已經不能滿足我們的需求,于是就在一個芯片上集成兩個或多個核心,進而轉向了多核處理器的發展,多核處理器具有更高的計算密度和更強的并行處理能力,所以它也是大趨勢。多核處理器從硬件的角度來區分,又分為同構和異構。
    的頭像 發表于 07-10 11:10 ?1542次閱讀
    多核<b class='flag-5'>同構</b>SMP--調度算法分析
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>