Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ตรวจสอบเลขใน Sequence

ตัวอย่างโค้ด

<?php
function contains_in_sequence($val_1, $val_2, $val_3) {
    if ($val_1 == $val_2) return true;
    if (($val_2 - $val_1) * $val_3 > 0 && ($val_2 - $val_1) % $val_3 == 0) return true;
    return false;
}

$val_1 = 11;
$val_2 = 99;
$val_3 = 2;

echo "Is the number present in the sequence? ";
if (contains_in_sequence($val_1, $val_2, $val_3)) {
    echo "Yes, it is present in the sequence";
} else {
    echo "No, it is not present in the sequence";
}
?>

ผลลัพธ์

Is the number present in the sequence? Yes, it is present in the sequence

คำอธิบาย

ตรวจสอบว่า $val_2 อยู่ใน Arithmetic Sequence ที่เริ่มจาก $val_1 ความต่าง $val_3 หรือไม่

  • Sequence: 11, 13, 15, 17, ..., 99 (Difference = 2)
  • 99 - 11 = 88, 88 * 2 = 176 > 0 (Direction OK)
  • 88 % 2 = 0 (หารลงตัว → เป็น Term ใน Sequence)

Formula

Term นำ้ที่ n: a_n = a_1 + (n-1)d

แก้หา n: n = (a_n - a_1)/d + 1

ถ้า n เป็น Positive Integer → อยู่ใน Sequence

Edge Cases

<?php
// Negative difference
contains_in_sequence(10, 2, -2);  // true: 10, 8, 6, 4, 2

// Wrong direction
contains_in_sequence(10, 20, -2); // false: sequence goes down

// Not in sequence
contains_in_sequence(10, 21, 2);  // false: 21 not in 10,12,14,...

// Same start and target
contains_in_sequence(5, 5, 3);    // true (first term)
?>