// ------------------------------------------------------------
// Function: generate_number
// Purpose: Create one 3-digit integer with distinct digits,
// drawn from a shared pool of available digits.
// The first digit is never zero, so the result
// is always a true 3-digit integer.
// ------------------------------------------------------------
function generate_number(&$available_digits, $length = 3) {
// Choose the first digit from the pool, excluding '0'
$non_zero_digits = array_filter($available_digits, function($d) {
return $d !== '0';
});
$non_zero_digits = array_values($non_zero_digits);
$first_digit = $non_zero_digits[array_rand($non_zero_digits)];
// Remove first digit from pool
$index = array_search($first_digit, $available_digits);
unset($available_digits[$index]);
$available_digits = array_values($available_digits);
// Choose the remaining digits from the updated pool
$remaining = [];
for ($i = 1; $i < $length; $i++) {
$d = $available_digits[array_rand($available_digits)];
$remaining[] = $d;
// Remove chosen digit
$idx = array_search($d, $available_digits);
unset($available_digits[$idx]);
$available_digits = array_values($available_digits);
}
// Build the number as a string, then convert to int
$digits_str = $first_digit . implode("", $remaining);
return intval($digits_str);
}
// ------------------------------------------------------------
// Function: generate_three_distinct_digit_numbers
// Purpose: Produce three integers, each with distinct digits,
// and no digit repeated across all three numbers.
// All numbers are guaranteed to be 3 digits long.
// ------------------------------------------------------------
function generate_three_distinct_digit_numbers() {
// Start with all digits 0–9 as strings
$digits = [];
for ($i = 0; $i < 10; $i++) {
$digits[] = strval($i);
}
// Generate three numbers, each 3 digits long
$n1 = generate_number($digits);
$n2 = generate_number($digits);
$n3 = generate_number($digits);
return [$n1, $n2, $n3];
}
// ------------------------------------------------------------
// Main execution
// ------------------------------------------------------------
for ($i = 0; $i < 5; $i++) {
$result = generate_three_distinct_digit_numbers();
echo "(" . $result[0] . ", " . $result[1] . ", " . $result[2] . ")\n";
}
/*
run:
(491, 356, 278)
(647, 389, 201)
(364, 280, 579)
(180, 573, 624)
(472, 869, 105)
*/