【18位數據次方提高數據輸出速度】2022-3-9

實在是無法忍受W10輸出數據那么慢W7需要2分鐘輸出數據W10則需要10分鐘完成W7需要3分鐘W10則需要15分鐘完成輸出數據,雖然W10運算速度比W7快很多但是加上輸出速度總體完成時間居然差不多!隨著使用數組超過百萬W7數據輸出時間也變長,隨著數組數據超百萬每運算1萬次方歷時也變得較長,快速保存每次運算好的數據很有必要,只好再次出手,寫提高輸出文本速度只能用尾部疊加法不能用插入法和疊加頭部法:

void 二的次方數組(_int64* 數, _int64 長, _int64 次)
{_int64 溢 = 0, 序 = 長 - 1, 次方 = 1; std::string wb = "";二的次方數組讀取文本("..\\Debug\\回復專用\\", "二次方數據*.txt", 數, 長, 次方);char 時間[128]; _strtime_s(時間, 128); printf("時間:%s 次方%d\n", 時間, 次方);if (次方 == 1)數[序] = 1; else;while (次方 && 序 > -1){if (數[序] > 0){數[序] = 數[序] * 2 + 溢;溢 = 數[序] / 1E+18;數[序] -= 溢*1E+18;if (次方 % 40000 == 0)wb += std::to_string(數[序]) + "\n"; else;--序;}else{數[序] += 溢;if (wb != ""){if (溢> 0)wb += std::to_string(數[序]) + "\n"; else;_strtime_s(時間, 128); printf("時間:%s ", 時間); std::cout << 次方 << " " << 長 - 序;寫入文本("..\\Debug\\回復專用\\二次方數據倒序" + std::to_string(次方 + 1) + ".txt", wb/* + std::to_string(序)*/);_strtime_s(時間, 128); printf(":%s數據輸出完成。\n", 時間); wb = "";}else;if (++次方 > 次 || 數[0] > 0){_strtime_s(時間, 128); printf("時間:%s ", 時間); std::cout << 次方 << " " << 長 - 序;寫入文本("..\\Debug\\回復專用\\二次方數據" + std::to_string(次方) + ".txt", std::to_string(序) + "\n");while (++序 < 長)寫入文本("..\\Debug\\回復專用\\二次方數據" + std::to_string(次方) + ".txt", std::to_string(數[序]) + "\n");_strtime_s(時間, 128); printf(":%s數據輸出完成。\n", 時間);次方 = 0;}else;if (次方 % 10000 == 0){string 標題 = "VsC++:" + std::to_string(次方) + "編程論壇回復專用=》VsC++:二次方數組1E7。";system(("title " + 標題).data());}else;序 = 長 - 1; 溢 = 0;}}
}
void 二的次方數組讀取文本(std::string 路徑, std::string 文件名, _int64* 數, _int64 長, _int64& 次方)
{_finddata_t file;std::string newPath = 路徑 + 文件名, 讀取 = "";_int64 cf = 0; int j = 0, jj = 0;intptr_t HANDLE = _findfirst((路徑 + 文件名).c_str(), &file);if (HANDLE == -1L)std::cout << "無法匹配文件夾路徑" << std::endl;elsedo{if (file.attrib){newPath = 路徑 + file.name;j = newPath.find("數據") + 4;if (newPath.find("倒序") != std::string::npos)j = newPath.find("倒序") + 4;jj = newPath.find(".txt");cf = _atoi64(newPath.substr(j, jj - j).c_str());if (次方 < cf)次方 = cf, 讀取 = newPath; else;}else;} while (_findnext(HANDLE, &file) == 0);_findclose(HANDLE);std::string 讀 = ""; bool k = (讀取.find("倒序") == std::string::npos);int 序 = (k ? 0 : 長 - 1), 位 = 0;std::ifstream 文件(讀取);if (!文件.eof()){while (getline(文件, 讀))if (k){if (序 == 0)序 = _atoi64(讀.c_str());else數[++序] = _atoi64(讀.c_str());}else{數[序] = _atoi64(讀.c_str());--序;}//if (!k)數[++序] = 0;文件.close();}else;//std::cout << 數[k ? 序 : ++序] << "\t" << 讀 << "\n";std::cout << 數[k ? 序 : ++序] << "\t" << 讀 << "\t" << 數[長 - 1] << "\n";
}

文本名稱的次方數-1為實際次方,內容順序文件第一行為數組序,倒序結尾無數組序。

void 二的次方數組讀取文本(std::string 路徑, std::string 文件名, _int64 (*數)[10000000], int 長, _int64& 次方)
{_finddata_t file;std::string newPath = 路徑 + 文件名, 讀取 = "";_int64 cf = 0; int j = 0, jj = 0;intptr_t HANDLE = _findfirst((路徑 + 文件名).c_str(), &file);if (HANDLE == -1L)std::cout << "無法匹配文件夾路徑" << std::endl;elsedo{if (file.attrib){newPath = 路徑 + file.name;j = newPath.find("數據") + 4;if (newPath.find("倒序") != std::string::npos)j = newPath.find("倒序") + 4;jj = newPath.find(".txt");cf = _atoi64(newPath.substr(j, jj - j).c_str());if (次方 < cf)次方 = cf, 讀取 = newPath; else;}else;} while (_findnext(HANDLE, &file) == 0);_findclose(HANDLE);std::string 讀 = "";bool k = (讀取.find("倒序") == std::string::npos);_int64 序 = (k ? 0 : 長 - 1), 位 = 0, 組 = 0;std::ifstream 文件(讀取);if (!文件.eof()){while (getline(文件, 讀))if (k){if (序 == 0)序 = _atoi64(讀.c_str());else{//if (序 == 長 && 組 < 1)++組, 序 = 長 - 1;數[組][++序] = _atoi64(讀.c_str());}}else{數[組][序] = _atoi64(讀.c_str());if (--序 < 0 && 組 < 1) ++組, 序 = 長 - 1;//--序;}文件.close();}else;//std::cout << 數[組][序] << "\t" << 讀 << "\n";std::cout << 數[組][k ? 序 : ++序] << "\t" << 讀 << "\t" << 數[組][長 - 1] << "\n";
}
void 二的次方數組(_int64 (*數)[10000000], _int64 長, _int64 次)
{_int64 溢 = 0, 序 = 長 - 1, 次方 = 1, 組 = 0; std::string wb = "";二的次方數組讀取文本("..\\Debug\\回復專用\\", "二次方數據*.txt", 數, 長, 次方);char 時間[128]; _strtime_s(時間, 128); printf("時間:%s 次方%d\n", 時間, 次方);if (次方 == 1)數[組][序] = 1; else;while (次方 && 序 > -1){if (數[組][序] > 0){數[組][序] = 數[組][序] * 2 + 溢;溢 = 數[組][序] / 1E+18;數[組][序] -= 溢*1E+18;if (次方 % 40000 == 0) wb += std::to_string(數[組][序]) + "\n"; else;if (--序 < 0 && 組 < 1) ++組, 序 = 長 - 1;// --序;}else{數[組][序] += 溢;if (wb != ""){if (溢> 0)wb += std::to_string(數[組][序]) + "\n"; else;_strtime_s(時間, 128); printf("時間:%s ", 時間); std::cout << 次方 << " " << 長 - 序;寫入文本("..\\Debug\\回復專用\\二次方數據倒序" + std::to_string(次方 + 1) + ".txt", wb/* + std::to_string(序)*/);_strtime_s(時間, 128); printf(":%s數據輸出完成。\n", 時間); wb = "";}else;if (++次方 > 次 || 數[組][0] > 1E+18)// || 次方 % 100000 == 0{_strtime_s(時間, 128); printf("時間:%s ", 時間); std::cout << "次方" << 次方 << " 數量" << 長 - 序 << " ";寫入文本("..\\Debug\\回復專用\\二次方數據" + std::to_string(次方) + ".txt", std::to_string(序) + "\n");while (++序 < 長){寫入文本("..\\Debug\\回復專用\\二次方數據" + std::to_string(次方) + ".txt", std::to_string(數[組][序]) + "\n");顯示進度(長, 序);}_strtime_s(時間, 128); printf(":%s數據保存完成。\n", 時間);//if (次方 > 次 || 數[組][0] > 1E+18)次方 = 0;}if (次方 % 10000 == 0){std::string 標題 = "VsC++:" + std::to_string(次方);system(("title " + 標題).data());}序 = 長 - 1; 組 = 溢 = 0;}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89456.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89456.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89456.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

云原生技術與應用-Kubernetes架構原理與集群環境部署

目錄 一.為什么需要kubernetes 1.對于開發人員 2.對于運維人員 二.kubernetes帶來的挑戰 三.kubernetes架構解析 1.master節點的組件 2.node節點包含的組件 3.kubernetes網絡插件 四.kubernetes快速安裝kubernetes集群 1.部署docker環境 2.部署kubernetes集群 五.Metrics-…

百度權重提升技巧分析:從底層邏輯到實戰策略

在搜索引擎優化&#xff08;SEO&#xff09;領域&#xff0c;百度權重始終是網站運營者關注的核心指標之一。它不僅反映了網站在百度搜索中的綜合表現&#xff0c;更直接影響著流量獲取能力與商業價值。然而&#xff0c;百度權重并非百度官方直接公布的數據&#xff0c;而是第三…

模擬數據生成---使用NGS數據模擬軟件VarBen

目錄 1.在BAM文件中根據指定的變異等位基因分數的指定位置或區域隨機選擇read。 2.篩選變異等位基因分數的reads: 3.裝BWA和samtools軟件包(samtools在linux系統中下載過,前文有講過) 4.寫py腳本 5.下載pysam庫模塊 6.下載參考基因組hg38 7.解壓gz 8.建立samtools索引…

Redis-典型應用-分布式鎖

目錄 1.什么是分布式鎖? 2.分布式鎖的實現 3.引入過期時間 4.引入校驗ID 5.引入lua腳本: 6.引入看門狗(watch dog) 7.引入redislock算法: 1.什么是分布式鎖? 在 分布式系統中,會出現多個節點同時訪問同一個公共資源, 此時就需要通過鎖來作互斥控制,避免出現類似于多線程…

Dinky (Mac) 本地開發環境搭建指南

目錄 一、前置條件 二、代碼準備 三、前端環境搭建 1. 安裝Node環境 2. 安裝PNPM 3. 構建前端 四、后端環境搭建 1. 本地編譯依賴 2. 添加必要依賴 3. 啟動后端服務 五、訪問系統 附錄&#xff1a;官方參考 一、前置條件 確保已安裝以下軟件&#xff1a; 軟件要求…

Java Set 集合詳解:從基礎語法到實戰應用,徹底掌握去重與唯一性集合

作為一名 Java 開發工程師&#xff0c;你一定在實際開發中遇到過需要去重、唯一性校驗、快速查找等場景。這時候&#xff0c;Set 集合 就成為你不可或缺的工具。本文將帶你全面掌握&#xff1a;Set 接口的定義與核心方法常見實現類&#xff08;如 HashSet、TreeSet、LinkedHash…

在分布式系統中,如何保證緩存與數據庫的數據一致性?

口訣&#xff1a; 讀多寫少用旁路&#xff0c;先更庫再刪緩存&#xff1b; 強一致選寫透&#xff0c;緩存代理更庫走&#xff1b; 性能優先用寫回&#xff0c;異步批量有風險&#xff1b; 高并發加雙刪&#xff0c;延遲兜底防舊殘&#xff1b; 強一致用鎖串&#xff0c;并發雖低…

【洛谷P1417】烹調方案 題解

題目大意 一共有 nnn 件食材&#xff0c;每件食材有三個屬性&#xff0c;aia_iai?&#xff0c;bib_ibi? 和 cic_ici?&#xff0c;如果在 ttt 時刻完成第 iii 樣食材則得到 ai?tbia_i-t\times b_iai??tbi? 的美味指數&#xff0c;用第 iii 件食材做飯要花去 cic_ici? 的…

vue svg實現一個環形進度條組件

svg實現一個環形進度條設計初衷&#xff1a;本來想直接使用element的進度條組件的&#xff0c;但是好多屬性都沒有辦法控制。 UI設計的圖如下&#xff0c;需要控制未完成和已完成的顏色&#xff0c;端點的形狀改為普通的butt 所以使用svg實現了一個環形進度條組件element組件設…

02 51單片機之LED閃爍

文章目錄1、單片機1-1、簡介1-2、應用場景2、51單片機2-1、背景2-2、主要品牌及其產品2-3、基本組成2-4、命名規則3、單片機內部結構3-1、單片機內部結構圖3-2、單片機內部結構3-3、單片機內部管腳圖3-4、單片機最小系統3-5、開發板介紹4、點亮LED4-1、新建工程4-1-1、創建工程…

Typecho博客集成算術驗證碼防御垃圾評論實戰指南

文章目錄 Typecho實現算術驗證碼防御機器人垃圾評論的完整方案 背景與問題分析 技術方案設計 系統架構 技術選型 核心實現步驟 1. 創建驗證碼生成函數 2. 修改評論表單模板 3. 添加AJAX刷新功能 4. 創建驗證碼刷新接口 5. 添加評論提交驗證 安全增強措施 1. 防止暴力破解 2. 增…

clonezilla 導出自動化恢復iso

clonezilla 下載及U盤工具下載 clonezilla rufus U盤寫入工具ventoy U盤工具downloaddownloaddownload clonezilla 備份&#xff0c;連貫上一篇文章參考 Choose Clonezilla live (VGA 800x600) Wait for it to complete Language selection Keyboard Settings Select Mode …

深度學習模型開發部署全流程:以YOLOv11目標檢測任務為例

深度學習模型開發部署全流程&#xff1a;以YOLOv11目標檢測任務為例 深度學習模型從開發到部署的完整流程包含需求分析、數據準備、模型訓練、模型優化、模型測試和部署運行六大核心環節。YOLOv11作為新一代目標檢測模型&#xff0c;不僅延續了YOLO系列的高效實時性能&#xff…

單片機(STM32-串口通信)

一、串口通信基礎概念串口通信&#xff08;Serial Communication&#xff09;是一種在計算機和外部設備之間進行數據傳輸的通信方式。它通過串行方式逐位傳輸數據&#xff0c;是最基本和常用的通信接口之一。主要特點1. 串行傳輸(1)數據按位順序傳輸&#xff0c;一次只能傳輸一…

Redis學習其三(訂閱發布,主從復制,哨兵模式)

文章目錄9.Redis訂閱與發布9.1發布訂閱命令9.2示例10.Redis主從復制10.1概念10.2環境配置10.3集群搭建&#xff08;一主二從配置&#xff09;10.4使用規則&原理11.哨兵模式11.1基本概念11.2工作原理11.3使用案例12.緩存穿透,雪崩&#xff08;待拓展&#xff09;12.1緩存穿透…

跨平臺 App 如何無痛遷移到鴻蒙系統?全流程實戰+Demo 教程

摘要 目前&#xff0c;隨著 HarmonyOS&#xff08;鴻蒙系統&#xff09;的快速發展&#xff0c;越來越多開發者和企業希望將已有的 Android、Flutter、React Native 等跨平臺應用遷移到鴻蒙生態中。鴻蒙不僅具備分布式能力、原生性能和統一的開發范式&#xff0c;還提供了豐富的…

智慧后廚檢測算法構建智能廚房防護網

智慧后廚檢測&#xff1a;構建安全潔凈廚房的智能解決方案背景&#xff1a;傳統后廚管理的痛點與智慧化需求餐飲行業后廚管理長期面臨操作規范難落實、安全隱患難察覺、衛生狀況難追溯等痛點。傳統人工巡檢效率低、覆蓋面有限&#xff0c;難以實現24小時無死角監管。例如&#…

LatentSync: 一鍵自動生成對嘴型的視頻

LatentSync是什么 字節跳動與北京交通大學聯合推出了全新的唇形同步框架 LatentSync&#xff0c;它基于音頻驅動的潛在擴散模型&#xff0c;跳過了傳統的3D建模或2D特征點提取&#xff0c;直接生成自然逼真的說話視頻。 LatentSync借助Stable Diffusion強大的圖像生成能力&am…

在斷網情況下,網線直接連接 Windows 筆記本和 Ubuntu 服務器進行數據傳輸

在斷網情況下&#xff0c;通過網線直接連接 Windows 筆記本 和 Ubuntu 服務器上的容器 進行數據傳輸&#xff0c;可以按照以下步驟操作&#xff1a;1. 物理連接 使用網線直連&#xff1a;用一根 普通網線&#xff08;直通線&#xff09; 連接 Windows 筆記本和 Ubuntu 服務器的…

機器學習17-Mamba

深度學習之 Mamba 學習筆記 一、Mamba 的背景與意義 在深度學習領域&#xff0c;序列建模是一項核心任務&#xff0c;像自然語言處理、語音識別和視頻分析等領域&#xff0c;都要求模型能有效捕捉長序列里的依賴關系。之前&#xff0c;Transformer 憑借強大的注意力機制成為序列…