【智力题】钟表的时针、分针、秒针每天重合多少次?

面试的时候遇到一个很好玩的问题:钟表的时针、分针、秒针每天重合多少次?

于是,matlab启动!

我分成"指针跳变"、"指针连续",两个版本进行仿真:

版本一:指针跳变

matlab 复制代码
%% 解释钟表三指针重合问题
% 假设:
% 1. 钟表的刻度是一圈60格
% 2. 钟表指针都是跳变的
% 3. 秒针每秒跳一格、分针每分跳一格、时针每12分跳一格

clear;
clc;
close all;
% 定义变量
len = 24*60*60;% 所有的秒数
secs = zeros(1,len);% 秒针
mins = zeros(1,len);% 分针
hour = zeros(1,len);% 时针

% 秒针
for i = 0 : (len/60)-1
    secs((1:60)+i*60) = 0:59;
end

% 分针
tmp = 0;
for i = 0 : (len/60)-1
    mins((1:60)+i*60) = tmp.*ones(1,60);
    tmp = mod(tmp+1,60);
end

% 时针
tmp = 0;
for i = 0 : (len/60/12)-1
    hour((1:720)+i*720) = tmp.*ones(1,720);
    tmp = mod(tmp+1,60);
end

% 找出重合点
for i = 0:len-1
    if(secs(i+1) == mins(i+1) && secs(i+1)==hour(i+1))
%         fprintf("%d:\t ", i);
        fprintf("%d:%d:%d\n",floor(i/3600),mod(floor(i/60),60),mod(i,60));
    end
end

运行结果:

matlab 复制代码
0:0:0
1:5:5
2:10:10
3:16:16
4:21:21
5:27:27
6:32:32
7:38:38
8:43:43
9:49:49
10:54:54
11:59:59
12:0:0
13:5:5
14:10:10
15:16:16
16:21:21
17:27:27
18:32:32
19:38:38
20:43:43
21:49:49
22:54:54
23:59:59

版本二:指针连续

matlab 复制代码
%% 解释时钟指针重合问题
% 假设:
% 1. 指针都是连续转动的
% 2. 秒针每秒转360/60=6度,分针每分钟转360/60=6度,时针每小时转360/12=30度。
% 3. 角速度统一(单位:角度/s):秒针-6度/s,分针-0.1度/s,时针-(1/120)度/s
clear;
clc;
close all;

% 参数定义
t = 0:1:(24*60*60-1);       % 一天总时长
hour = mod(1/120.*t, 360);  % 时针
mins = mod(0.1.*t, 360);    % 分针
secs = mod(6.*t, 360);      % 秒针
len = length(t);

% 找出重合点
for i = 0:len-1
    if(secs(i+1) == mins(i+1) && secs(i+1)==hour(i+1))
        fprintf("%d:%d:%d\n",floor(i/3600),mod(floor(i/60),60),mod(i,60));
    end
end

运行结果:

matlab 复制代码
0:0:0
12:0:0

结论

  1. 若指针跳变,每小时都会重合一次,一天可以重合24次。
  2. 若指针连续转动,只有最开始的0时0分0秒、中午12点整,这两个时间会重合。

我也不知道对不对啊,不服来辩!

相关推荐
Lee川21 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Lee川1 天前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
晴殇i1 天前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
绝无仅有1 天前
Redis过期删除与内存淘汰策略详解
后端·面试·架构
绝无仅有1 天前
Redis大Key问题排查与解决方案全解析
后端·面试·架构
AAA梅狸猫1 天前
Looper.loop() 循环机制
面试
AAA梅狸猫1 天前
Handler基本概念
面试
Wect1 天前
浏览器缓存机制
前端·面试·浏览器
掘金安东尼1 天前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼1 天前
Next.js 企业级落地
前端·javascript·面试