數學回味系列之4
問題提出:
有編號1~100個燈泡,起初所有的燈都是滅的。有100個同學來按燈泡開關,如果燈是亮的,那麼按過開關之後,燈會滅掉。如果燈是滅的,按過開關之後燈會亮。
現在開始按開關。
第 1 個同學,把所有的燈泡開關都按一次(按開關燈的編號:1,2,3,......100)。
第 2 個同學,隔一個燈按一次(按開關燈的編號:2,4,6,......,100)。
第 3 個同學,隔兩個燈按一次(按開關燈的編號:3,6,9,......,99)。
......
問題是,在第100個同學按過之後,有多少盞燈是亮著的?
解決思路:
明顯這是一個 奇偶問題
那這個問題就變成了一個判斷 奇數偶數 的數學問題。
先最簡單的思路,模擬這個過程,light[i][j] 代表 第 i 個人按了第 j 個燈,直接上程式碼:
/* linolzhang 2008.05 */ // 蒐集過程 int light[100][100]; for(int i=0;i<100;i++) for(int j=0;j<100;j++) if(j%i == 0) { light[i][j] = 1; } // 累加過程(j列對應和為偶數為滅) int statu[100] = {0}; for(int j=0; j<100; j++) { for(int i=0; i<100; i++) statu[j] += light[i][j]; statu[j] = statu[j] % 2; }
感覺這個問題已經很完美的解決了?
*也許不是,你應該有更好的思路。
Light 1 只會被第1個同學按;
Light 2 只會被第1個同學和第2個同學按;
Light 3 只會被第1個同學和第3個同學按;
Light 4 只會被第1個同學、第2個同學以及第4個同學按;
……
Light N 只會被第1個同學、……、第N個同學按;
找到規律了嗎?沒錯,這是一個簡單的因式分解題,只需要求 該序號N 能被哪些數整除?
計算因子個數,因子個數為偶數個,燈是滅的。int getCount(int num) { int count = 0; // 因子個數 for(int i=1;i<num;i++) if(0==num % i) count++; return count; };
*那還有沒有第三種解法呢?有
接著上面來看,什麼樣的編號具有奇數個因子,什麼樣的編號具有偶數個因子?來看 質因數分解的定理:
任何正數都能被唯一表示成多個質因數冪次乘積的方式。
36 = 2^2 * 3^2(2、3、6)
64 = 2^3 * 2^3 (2、4、8、16、32)
99 = 3^2 * 11 (3、9、33、11)
我們得到結論,只有指數和為偶數次的 其因子才會是奇數個,那麼滿足這個條件的是哪些呢?
必須滿足完全平方數。
ok,我們得到結論,1~100中完全平方數有 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ,這10個編號的燈是亮著的。
相關推薦
數學回味系列之4
問題提出: 有編號1~100個燈泡,起初所有的燈都是滅的。有100個同學來按燈泡開關,如果燈是亮的,那麼按過開關之後,燈會滅掉。如果燈是滅的,按過開關之後燈會亮。 現在開始按開關。 第 1 個同學,把所有的燈泡開關都按一次(按開關燈的編號:1,2
數學回味系列之5
問題提出: 三個人分一塊蛋糕,如何讓每個人都覺得公平? 解題思路: ● 最公平的方案 - 先分後選 由 A 將蛋糕分成3塊,BC選擇其中兩塊; B重新對 選擇的兩塊二次分割,C先選,剩下的一塊給B; ● 不吃虧
數學回味系列之19
發現一些比較有意思的數,大家一起來認識一下: 分別是 阿姆斯特朗數、完全數、自守數、迴文數 。 阿姆斯特朗數: 如果一個正整數等於其各個數字的立方和,則稱為 阿姆斯特朗數 (也稱自戀性數)。 比如 153 = 1^
mysql系列之4----密碼管理、授權、圖形化管理
erl column option process 生成 自己 服務 auth 存儲 一、mysql密碼破解 1、在shell命令行下修改密碼 mysqladmin -hlocalhost -uroot -p password "1234
不容易系列之(4)——考新郎
mode 實例 script php 容易 鏈接 兩個 problem 求解 題目鏈接 Problem Description 國慶期間,省城HZ剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有一個有意思的節目,叫做"考新郎",具體的操作是這樣的:首
不容易系列之(4)——考新郎 遞推
一場 輸出 urn iss map 測試 多人 scrip mit 不容易系列之(4)——考新郎 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total S
用go編寫區塊鏈系列之4--交易1
0 介紹 比特幣區塊鏈的核心就是交易,區塊鏈唯一的目的就是用一種安全可信的方式去儲存交易,交易一經建立就無法更改。這章中我們將在區塊鏈中引入交易。 1 比特幣中的交易 如果你是開發網路應用的程式設計師,若讓你開發一個線上支付交易,你多半會在資料庫中建立倆張表:賬戶表和交易表。賬戶表中將會
自己動手編寫一個Linux偵錯程式系列之4 ELF檔案格式與DWARF除錯格式
目錄 在上一節中,你已經聽說了DWARF除錯格式,它是程式的除錯資訊,是一種可以更好理解原始碼的方式,而不只是解析程式。今天我們將討論原始碼級除錯資訊的細節,以準備在本教程後面的部分中使用它。 系列索引 準備工作 斷點的設定 暫存器和記憶體 ELF檔案格式
HDU 2049 不容易系列之(4)——考新郎
Problem Description 國慶期間,省城HZ剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些,司儀臨時想出了有一個有意思的節目,叫做"考新郎",具體的操作是這樣的: 首先,給每位新娘打扮得幾乎一模一樣,並蓋上大大的紅蓋頭隨機坐成一排; 然後,讓各位新郎尋
神、上帝以及老天爺&&不容易系列之(4)——考新郎 (錯排問題)
這兩個題都有涉及錯排的問題,詳情參考https://baike.baidu.com/item/錯排問題/3849290?fr=aladdin 基本公式就是(引自百度百科) 有了這個公式這一切就都簡單了 HDU 2006'10 ACM contest的頒獎晚會隆重開始了! 為了活躍氣氛,組
C#會重蹈覆轍嗎?系列之4:華而不實的C#析構器
前段時間去鳥國出差,顛倒黑白,碌碌無為,疏於寫博,請大家理解。下面繼續前貼7月《C與C++社群混戰,C#會重蹈覆轍嗎?》的討論。這次要談的是C#的析構器的問題。這是C#中非常華而不實的一個設計,不必要,且常常誤導很多C#er,且是.NET效能問題的常見陷阱地帶。下面逐項討論: 1.C#析構器是一個醜陋的
杭電I - 不容易系列之(4)——考新郎
錯排列加 排列組合 錯排公式:f(n)=(f(n-1)+f(n-2))*(i-1) (n>=3); #include<math.h> #include<stdio.h> #include&l
hdu_problem_2049_不容易系列之(4)——考新郎
N個人裡面有M個人選錯了,可以看成從N個人裡面選M個人(組合數公式C(N,M),可以參考楊輝三角)然後M個人對應的位置都錯了(可以參考problem_2048) /* * *Problem Description *國慶期間,省城HZ剛剛舉行了一場盛大的集體婚禮,為了使婚禮進行的豐富一些
探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和過度提交防禦
@model Register @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> <h4>Register
ABP(現代ASP.NET樣板開發框架)系列之4、ABP模組系統
基於DDD的現代ASP.NET開發框架--ABP系列之4、ABP模組系統 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 本文由東莞-天道提供翻譯 ABP模組系統簡介 ABP框架提供了建立和組裝模組的基礎,一個模組
感測器系列之4.8光敏感測器
4.8 光敏感測實驗 一、實驗目的 1.掌握LPC2378晶片的程式設計方法 2. 掌握光敏感測器的工作原理 3. 瞭解光敏電阻的用途 二、實驗材料 1.具有USB 串列埠通訊的PC 機1 臺 2.ADS1.2 整合開發軟體1 套 3.J-Lin
杭電ACM 2049 不容易系列之(4)——考新郎
利用錯排公式和排列組合公式 最終結果就是 M個錯排*Cmn 其中m=M,n=M-N #include <iostream> using namespace std; __int64 Fac(int n){ __int64 ans=1; for(
感測器系列之4.1振動感測實驗
4.1 振動感測實驗 一、實驗目的 掌握LPC2378晶片的程式設計方法 掌握震動感測器的使用方法 掌握震動感測器在實際中的應用。 二、實驗材料 具有串列埠通訊的電腦一臺 ADS1.2 開發環境 J-Link-ARM模擬器一個 LPC2
單元測試系列之4:使用Unitils測試DAO層
Spring 的測試框架為我們提供一個強大的測試環境,解決日常單元測試中遇到的大部分測試難題:如執行多個測試用例和測試方法時,Spring上下文只需建立一次;資料庫現場不受破壞;方便手工指定Spring配置檔案、手工設定Spring容器是否需要重新載入等。但也存在不足的地方,