powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вывод нескольких чилес из множества чисел
8 сообщений из 33, страница 2 из 2
Вывод нескольких чилес из множества чисел
    #37305735
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty1121947792

Что за ересь????
n a(n)
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800
11 39916800
12 479001600
13 6227020800
14 87178291200
15 1307674368000
16 20922789888000
17 355687428096000
18 6402373705728000
19 121645100408832000
20 2432902008176640000
и т.д.
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305747
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шо тя не устраивает?
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305757
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, данный ответ - 1947792 вместо 3,71993326789901Е+41
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305760
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюShocker.Pro, данный ответ - 1947792 вместо 3,71993326789901Е+41А ну, это тебе не к нам, это в Академию Наук. У меня-то получилось 1947792
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305762
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, ну да это я ещё не досчитал до конца, Ваша правда
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305775
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю, досчитал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Sub Ф_6_из_36()

Dim iss As Byte
iss =  6 

Dim max As Byte
max =  36 

Dim n As Double

Dim factorial_iss As Double
n = iss
factorial_iss = fact(n)
Dim factorial_max As Double
n = max
factorial_max = fact(n)
Dim factorial_max_minus_factorial_is As Double
n = max - iss
factorial_max_minus_factorial_is = fact(n)

MsgBox$ factorial_max / factorial_max_minus_factorial_is / factorial_iss

'нельзя указывать, так как «!» воспринимается как Single ! Вещественный
'MsgBox$ max!/(max-iss)!/iss!

End Sub

Function fact(ByVal n As Integer) As Double

If n =  0  Or n =  1  Then fact =  1  Else fact = n * fact(n -  1 )

End Function
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305916
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, считаем мы по стандартной формуле C(n,k)=n!/((n-k)!*k!).
Эндрю, а вообще-то есть формула попроще, которую удобно использовать при небольших k. Это просто формула с сокращенным множителем n!/(n-k)!
C(n,k)=n*(n-1)*...*(n-k+1)/k!
Для вашего случая вообще можно было в уме посчитать:
C(36,6)=(36*35*34*33*32*31)/(6*5*4*3*2)

Да и используя последовательное домножение на вещественные сомножители (36/6 * 35/5 * 34/4 * 33/3 * 32/2 * 31/1) можно рассчитывать выборки с достаточно большими числами, которые случае с факториалами приводили бы к переполнению уже при расчете n!
В целом, ваша программа сводится примерно к такому коду:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function Cnk(n, k As Long)
    If k =  0  Then Cnk =  1 : Exit Function
    If k <  0  Or k > n Then Cnk =  0 : Exit Function
    Dim i As Long
    k = IIf(n - k < k, n - k, k)
    Cnk =  1 
    For i =  0  To k -  1 
        Cnk = Cnk * (n - i) / (k - i)
    Next
    Cnk = Int(Cnk)
End Function

Sub test()
    MsgBox Cnk( 36 ,  6 )
End Sub
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305929
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, спасибо за комплимент: Для вашего случая вообще можно было в уме посчитать
благодаря Вам открыта тайна о количестве вариантов билетов 7 из 49
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вывод нескольких чилес из множества чисел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]