powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вывод нескольких чилес из множества чисел
33 сообщений из 33, показаны все 2 страниц
Вывод нескольких чилес из множества чисел
    #37305392
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в visual basic реализовать функцию которая и m чисел выташит по n различных чисел.
например из 1 2 3 4 5 6 , когда например n=3 программа вытащит: 123 124 125 126 134 135 136 145 146 156 234 235 236 345 346.
Спасибо
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305393
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как не выводя их узнать их количество
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305429
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для этого не нужен VB - это простые формулы комбинаторики
я полагал, образование у тебя все-таки высшее, а не средней школы

изучай вопрос
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305435
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, уже решил
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305442
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

Абыр!
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305446
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim, что за ересь Вы написали???
Код: 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.
33.
34.
Option Explicit

Sub Спортлото_6_36()

Dim max As Byte
max =  36 

Dim q As Byte
Dim w As Byte
Dim e As Byte
Dim r As Byte
Dim t As Byte
Dim y As Byte
Dim Количество As Long
Dim s As String
    
    For q =  1  To max -  5 
        For w = q +  1  To max -  4 
            For e = w +  1  To max -  3 
                For r = e +  1  To max -  2 
                    For t = r +  1  To max -  1 
                        For y = t +  1  To max
                            Количество = Количество +  1 
                      Selection.TypeText Text:=Количество & " - " & q & w & e & r & t & y & Chr( 13 )
                            's = s & " " & Количество & " " & i & j & k & Chr(13)
                        Next y
                    Next t
                Next r
            Next e
        Next w
    Next q
    
'MsgBox$ Количество & " " & s
    
End Sub
занимайте очередь в магазине
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305448
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю...
занимайте очередь в магазине
эндря, ну нафига ты это выложил ??!! ))))))))))))
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305451
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proя полагал, образование у тебя все-таки высшее, а не средней школы

оййй, я б ненадеялся .... :)
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305452
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, ищу тех в складчину скупят все билеты спортлото
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305464
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюtimtim, что за ересь Вы написали???
Извини, у меня самопроизвольно вырвалось.
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305465
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрюqwerty112, ищу тех в складчину скупят все билеты спортлото
эндря,

не тровож моск (или что там у тебя),
твоя игра - "Чапаев"
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305468
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

проверьте для прикола
количество=36!/(30-6)!/6!
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305471
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,
Меня зовут Эндрю, если Вы такой умный, там на 5 ходу ошибка, подскажите как исправить??
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305474
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрюqwerty112,
Меня зовут Эндрю, если Вы такой умный, там на 5 ходу ошибка, подскажите как исправить??
ну ладно-ладно,
можеш называть меня qwerty11 1 :)
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305475
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112,

по существу
там на 5 ходу ошибка, подскажите как исправить??
что-то есть??
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305478
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_worldЦипихович Эндрю,

проверьте для прикола
количество=36!/(30-6)!/6!
а почему 30-6, а не 36-6???
! это факториал???
Чего то в ВБА он у меня не прёт ????
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305485
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюmds_worldЦипихович Эндрю,

проверьте для прикола
количество=36!/(30-6)!/6!
а почему 30-6, а не 36-6???
! это факториал???
Чего то в ВБА он у меня не прёт ????
Конечно же 36-6
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305486
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world,
! это факториал!!!!!!!!!1
Чего то в ВБА он у меня не прёт ????
В библиотеку идти?? в какую????
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305489
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Факториала, имхо, нет среди стандартных функций. Но его несложно сделать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function Factorial (ByVal MyVar As Integer)
	MyVar = MyVar -  1 
	If MyVar =  0  Then 
		Factorial =  1 
		Exit Function
	End If
	Factorial = Factorial(MyVar) * (MyVar +  1 )
End Function

?Factorial( 36 )/Factorial( 30 )/Factorial( 6 )
  1947792  
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305497
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world, ничего не понял, а почему такие сложности есть же пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub ww()

Dim MyAppNum As Variant
Dim MyNumber As Integer
MyNumber =  5 
On Error Resume Next
MyAppNum = Shell("c:\windows\calc.exe",  1 )
AppActivate MyAppNum
SendKeys Str(MyNumber) & "!^c%{F4}", True

End Sub
и не ругается
кстати SendKeys у меня не работал в 2003 и в 2010 лиценз. не работает, вот ересь!!!
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305502
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_worldколичество=36!/(30-6)!/6!
mds_world
Код: plaintext
1.
?Factorial( 36 )/Factorial( 30 )/Factorial( 6 )
  1947792  

тьху ! а я тут 100500-тый раз перепроверяю, - "что не так" :))
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
declare @D table (dig int)

insert into @D 

select  1  union all
select  2  union all
select  3  union all
select  4  union all
select  5  union all
select  6  union all
select  7  union all
select  8  union all
select  9   union all
select  10  union all
select  11  union all
select  12  union all
select  13  union all
select  14  union all
select  15  union all
select  16  union all
select  17  union all
select  18  union all
select  19  union all
select  20  union all
select  21  union all
select  22  union all
select  23  union all
select  24  union all
select  25  union all
select  26  union all
select  27  union all
select  28  union all
select  29  union all
select  30  union all
select  31  union all
select  32  union all
select  33  union all
select  34  union all
select  35  union all
select  36  
----------

select count(*) as q
from

(select D.dig as a, D_1.dig as a1, D_2.dig as a2, D_3.dig as a3, D_4.dig as a4, D_5.dig as a5
from @D D, @D D_1, @D D_2, @D D_3, @D D_4, @D D_5
where D.dig	<	D_1.dig 
  and D_1.dig	<	D_2.dig 
  and D_2.dig	<	D_3.dig 
  and D_3.dig	<	D_4.dig 
  and D_4.dig	<	D_5.dig) a
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
( 36  row(s) affected)

q           
----------- 
 1947792 

( 1  row(s) affected)
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305511
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюmds_world, ничего не понял, а почему такие сложности есть же пример
Хе-е-ех

Успехов...
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305514
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112mds_worldколичество=36!/(30-6)!/6!
mds_world
Код: plaintext
1.
?Factorial( 36 )/Factorial( 30 )/Factorial( 6 )
  1947792  


mds_worldКонечно же 36-6
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305518
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world, да проще и факториал можно вычислить но что то не прёт

Код: 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.
Sub Калькулятор_Windows()

'использовать калькулятор Windows для вычислений в коде VBA
'допустим, требуется вычислить 2*5
Dim MyAppNum As Variant
On Error Resume Next
'функцией Shell запускается исполняемый файл калькулятора calc.exe в каталоге Windows
MyAppNum = Shell("c:\windows\calc.exe",  1 )
'окно калькулятора делается текущим при помощи оператора AppActivate
AppActivate MyAppNum
'виртуальный ввод с клавиатуры
'в окне калькулятора будет “нажата” цифровая клавиша 5
'затем будет введен символ “*”
'затем будет “нажата” цифровая клавиша 2
'в окошке калькулятора появится результат (число 10)
SendKeys "2*5^c%{F4}", True
'символы “^c” соответствуют нажатию [Ctrl]+[c]
'что влечет за собой копирование результата в буфер
'наконец, символы “%{F4}” соответствуют сочетанию [Alt]+[F4]
'благодаря чему окно калькулятора тут же закрывается
'остается лишь использовать хранящийся в буфере результат
'например, вставить его вызовом метода Paste соответствующего объекта

End Sub

Буфер пустой, что за ересь?????????
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #37305524
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю, одно нашёл
MyAppNum = Shell("C:\WINDOWS\system32\calc.exe", 1)
ну все равно буфер пустой, но не вижу где указывает что нажимаю равно на калькуляторе
...
Рейтинг: 0 / 0
Вывод нескольких чилес из множества чисел
    #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
33 сообщений из 33, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вывод нескольких чилес из множества чисел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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