Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,683 questions

55,435 answers

573 users

How to compute the total number of lottery combinations for choosing 6 out of 37 and 1 power out of 7 in Kotlin

1 Answer

0 votes
/*
    This program computes the total number of lottery combinations for:
        - choosing 6 numbers out of 37
        - choosing 1 power number out of 7

    Total combinations = C(37,6) * C(7,1)

    We implement an idiomatic binomial coefficient function using the
    multiplicative formula:

        C(n, k) = product(i = 1..k) of (n - k + i) / i

    Why this method?
        - Avoids huge factorials (37! is far too large for Long)
        - Keeps intermediate values small and exact
        - Efficient, clean, and idiomatic Kotlin
*/

fun binomialCoefficient(n: Long, k: Long): Long {
    if (k > n) return 0

    // Use symmetry: C(n, k) == C(n, n-k)
    var kk = k
    if (kk > n - kk) {
        kk = n - kk
    }

    var result = 1L

    for (i in 1..kk) {
        result = result * (n - kk + i) / i
    }

    return result
}

fun main() {
    val mainN: Long = 37
    val mainK: Long = 6

    val powerN: Long = 7
    val powerK: Long = 1

    val mainCombos: Long = binomialCoefficient(mainN, mainK)
    val powerCombos: Long = binomialCoefficient(powerN, powerK)

    val total: Long = mainCombos * powerCombos

    println("Main combinations (C(37,6)): $mainCombos")
    println("Power combinations (C(7,1)): $powerCombos")
    println("Total lottery combinations: $total")
}


/*
run:

Main combinations (C(37,6)): 2324784
Power combinations (C(7,1)): 7
Total lottery combinations: 16273488

*/

 



answered Jul 27 by avibootz

Related questions

...