用php创建一个程序,在一系列数字中查找缺失的数字
我需要一个问题的帮助,我需要用php编写代码,这将用php创建一个程序,在一系列数字中查找缺失的数字,php,loops,numbers,find,sequence,Php,Loops,Numbers,Find,Sequence,我需要一个问题的帮助,我需要用php编写代码,这将 查找序列中缺少的数字,而不考虑该数字在序列中的位置 数字将增加,但每次的数量相同 输出必须是初始列表中缺少的数字,而不仅仅是包含数字的列表(我自己已经计算出来) 示例数字序列,$sequence=3,5,9,11,13 很明显,数字7不见了,但我不知道如何编写代码,我假设它会使用循环,但我甚至不知道如何启动,它必须是用PHP编写的 <?php $str="3,5,9,11,13" ; $arr=explode(',', $str);
- 查找序列中缺少的数字,而不考虑该数字在序列中的位置李>
- 数字将增加,但每次的数量相同李>
- 输出必须是初始列表中缺少的数字,而不仅仅是包含数字的列表(我自己已经计算出来)李>
<?php
$str="3,5,9,11,13" ;
$arr=explode(',', $str);
$no=array();
for ($i=3; $i <30 ; $i=$i+2) {
$m=$i+2;
if (!(in_array($m, $arr)))
{
$no[]=$m;
}
}
print_r($no);
// OUTPUT- Array ( [0] => 7 [1] => 15 )
?>
仅使用前三个元素查找间隔(需要三取二匹配),不验证序列的其余部分是否遵循规则,但也会查找更多缺少的元素:
<?php
$sequence = array(3, 5, 9, 13, 15, 17, 21);
// guess
$step = $sequence[1] - $sequence[0];
// validate
if (($sequence[2] - $sequence[1]) != $step) {
if (($sequence[3] - $sequence[2]) != $step) {
$step = $sequence[2] - $sequence[1];
if (($sequence[3] - $sequence[2]) != $step) {
die('first three intervals are all different');
}
}
}
$should = range($sequence[0], $sequence[count($sequence) - 1], $step);
echo 'Missing: ', implode(', ', array_diff($should, $sequence));
从序列中获取缺失数字的一种更简单的方法,我的看法是:
<?php
$sequence = array(3, 5, 9, 11, 13);
$numbers = array(7, 9, 15);
$single_nr = 7;
function getMissingNumber(array $sequence, $single_nr = null, $numbers = array())
{
// Check if it exists in the sequence array
// check single number
if($single_nr)
{
if(!in_array($single_nr, $sequence))
{
echo $single_nr . " is not in array" . "<br />";
}
}
// check an array of numbers
if($numbers)
{
foreach($numbers as $nr)
{
if(!in_array($nr, $sequence))
{
echo $nr . " is not in array" . "<br />";
}
}
}
}
echo getMissingNumber($sequence, null, $numbers);
?>
很好。请显示您的努力,它将使用循环,可能还有数组。这已经是一个好的开始。试着把你的列表放入一个数组中,然后循环这个数组作为开始。你需要一些非常奇特的逻辑,这对于一个普通的问题/答案来说可能太宽泛了。有一些算法可以找到模式,但大多数算法最多只能处理几种类型的模式。你为什么回答这些问题?@Erdem Ece我不明白!他不写任何代码,但要求别人写他的代码。这不是一个自由职业者的地方。@Erdem Ece我完全同意你的观点,我相信你是对的,但这只是他自己的损失,因为他不想自己而不是我,因为他的技能不会提高!他要求一个解决方案,我提供了一个@sunny我实际上是做代码的,但是我对php这种编程相对来说是新手,这个问题是在一次工作面试中向我提出的(显然我没有得到这份工作,我不明白他们在找什么)但我想找到一个解决方案,从经验中学习,所以我想找一些更有经验的人,他们可能会给我指出正确的方向,这样我就可以自己学习,而不是完整的答案。