Resolviendo el reto /Solving Challenge

in Hive Learners5 months ago

This is a series of posts that will focus on solving the daily problems posed by the user @ydavgonzalez step by step and we will also teach the programming approach.

versión español

Enlace al reto:

## Educational Math and Programming: Solving a Combinatorics Problem

Mathematical Foundation:

The given problem can be solved using principles of combinatorics, specifically the multiplication principle.

Steps:

  1. Determine the number of choices for each digit:

    • Hundreds: 1-9 (9 choices)
    • Tens: 0-9 (10 choices)
    • Units: 0-9 (10 choices)
  2. Multiply the choices for each digit:

    • Total choices: 9 × 10 × 10 = 900
  3. Determine the numbers with even sum of digits:

    • The digit sum can be 2, 4, 6, 8, or 10.
    • For each sum, determine the number of possible combinations:
      • Sum 2: 1 choice (1 + 1)
      • Sum 4: 3 choices (1 + 3, 2 + 2, 3 + 1)
      • Sum 6: 6 choices (1 + 5, 2 + 4, 3 + 3, 4 + 2, 5 + 1, 6 + 0)
      • Sum 8: 10 choices (1 + 7, 2 + 6, 3 + 5, 4 + 4, 5 + 3, 6 + 2, 7 + 1, 8 + 0)
      • Sum 10: 15 choices (1 + 9, 2 + 8, 3 + 7, 4 + 6, 5 + 5, 6 + 4, 7 + 3, 8 + 2, 9 + 1, 10 + 0)
  4. Sum the number of combinations for each even sum:

    • Total combinations: 1 + 3 + 6 + 10 + 15 = 35
  5. Subtract invalid combinations:

    • Subtract combinations that start with 0 (20 combinations)
    • Valid combinations: 35 - 20 = 15

JavaScript Solution:function countValidNumbers(digits) {
// Choices for each digit
const hundreds = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const tens = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const units = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

// Total combinations
const totalCombinations = hundreds.length * tens.length * units.length;

// Valid combinations
const validCombinations = [];
for (let i = 0; i < hundreds.length; i++) {
    for (let j = 0; j < tens.length; j++) {
        for (let k = 0; k < units.length; k++) {
            const sum = hundreds[i] + tens[j] + units[k];
            if (sum % 2 === 0) {
                validCombinations.push([hundreds[i], tens[j], units[k]]);
            }
        }
    }
}

// Subtract invalid combinations
const invalidCombinations = validCombinations.filter(
    combination => combination[0] === 0
);
const finalCount = validCombinations.length - invalidCombinations.length;
console.log("Number of valid combinations:", finalCount);

}
Usage Example:countValidNumbers(3); // Prints "Number of valid combinations: 15"

Sort:  

Congratulations @gmaplus! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You published more than 20 posts.
Your next target is to reach 30 posts.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

The countdown to HiveFest⁹ is one week away - Join us and get your exclusive badge!
Our Hive Power Delegations to the August PUM Winners
Feedback from the September Hive Power Up Day