有100个人排行成一列,编号依次为1,2,3,...,100。每次请队伍中位置为奇数的人,求最后剩下的那个人的编号。
将此问题用matlab编程实现求解:
clear;
clc;
x=1:1:100;%最初的编号
n=length(x);
while n>3
n=length(x);
a=1:2:n;%每次应该排除的奇数序号
x(a)=[];%删除奇数序号的元素
end
程序运行后,x中的元素仅剩64。
本文介绍了一种基于行列奇偶性的筛选算法,并使用Matlab编程实现了该算法。具体操作为从1到100编号的人群中,每次移除位置为奇数的人,直至只剩一人。最终结果为编号64的人留到最后。
有100个人排行成一列,编号依次为1,2,3,...,100。每次请队伍中位置为奇数的人,求最后剩下的那个人的编号。
将此问题用matlab编程实现求解:
clear;
clc;
x=1:1:100;%最初的编号
n=length(x);
while n>3
n=length(x);
a=1:2:n;%每次应该排除的奇数序号
x(a)=[];%删除奇数序号的元素
end
程序运行后,x中的元素仅剩64。
743

被折叠的 条评论
为什么被折叠?