Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 7 из 28  [new]
asd456
Guest
Привет Как можно из 28 выбрать 7 чисел, так что повторяющих вариантов не было?
Я исползую вот этот код, но повторяющих ваинтов оченб много.
*******************************************
CREATE TABLE Table1 (a1 N(2,0), a2 N(2,0), a3 N(2,0), a4 N(2,0), a5 N(2,0), a6 N(2,0), a7 N(2,0))

FOR x1=1 TO 28
FOR x2=1 TO 28
FOR x3=1 TO 28
FOR x4=1 TO 28
FOR x5=1 TO 28
FOR x6=1 TO 28
FOR x7=1 TO 28

INSERT INTO Table1 (A1, a2, a3, a4, a5,A6,A7) VALUES (x1, x2, x3, x4, x5,X6,X7)

ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR


GO TOP
BROWSE NOWAIT
13 янв 06, 09:33    [2250402]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Если выбрать, то проще, наверное так:
SELECT DISTINCT A1, a2, a3, a4, a5,A6,A7 FROM Table1

С уважением, Алексей
13 янв 06, 10:04    [2250546]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
!Guest
Member

Откуда:
Сообщений: 11
попробуй так
CREATE TABLE Table1 (a1 N(2,0), a2 N(2,0), a3 N(2,0), a4 N(2,0), a5 N(2,0), a6 N(2,0), a7 N(2,0))

FOR x1=1 TO 28
FOR x2=x1+1 TO 28
FOR x3=x2+1 TO 28
FOR x4=x3+1 TO 28
FOR x5=x4+1 TO 28
FOR x6=x5+1 TO 28
FOR x7=x6+1 TO 28

INSERT INTO Table1 (A1, a2, a3, a4, a5,A6,A7) VALUES (x1, x2, x3, x4, x5,X6,X7)

ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR


GO TOP
BROWSE NOWAIT
13 янв 06, 10:08    [2250575]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
asd456
Guest
Мне сначало надо создать такой таблицу.
13 янв 06, 10:11    [2250594]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
Недоходящий
Member

Откуда:
Сообщений: 912
2 asd456

Посмотри здеся, может чем-то поможет.
https://www.sql.ru/forum/actualthread.aspx?bid=37&tid=244932&hl=
13 янв 06, 11:09    [2250989]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
1,2,3,4,5,6,7 и 2,1,3,4,5,6,7 считаются одинаковыми вариантами или нет?
С уважением, Алексей
13 янв 06, 11:29    [2251091]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
asd456
Guest
Да.
13 янв 06, 13:28    [2251991]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
Недоходящий
Member

Откуда:
Сообщений: 912
2 asd456
А выбрать из только из одного поля где нет совпадений из других?
13 янв 06, 13:59    [2252174]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi !Guest!

Так будет заметно быстрее, с тем-же конечным результатом (ну конечно порядок
записей будет иным, но это IMHO несущественно).
Также изменив условия (и тип соединения) можно получить выборку учитывающую
не только "состав", но и порядок чисел (т.е. там где {1, 2} и {2, 1}
считаются различными комбинациями).

lnSec = SECONDS()
CREATE CURSOR num (num N(2,0))
FOR ln1=1 TO 28
    INSERT INTO num (num) VALUES (m.ln1)
ENDFOR
SELECT c1.num AS a1, ;
        c2.num AS a2, ;
        c3.num AS a3, ;
        c4.num AS a4, ;
        c5.num AS a5, ;
        c6.num AS a6, ;
        c7.num AS a7 ;
    FROM num c1 ;
        INNER JOIN num c2 ;
            ON c2.num > c1.num ;
        INNER JOIN num c3 ;
            ON c3.num > c2.num ;
        INNER JOIN num c4 ;
            ON c4.num > c3.num ;
        INNER JOIN num c5 ;
            ON c5.num > c4.num ;
        INNER JOIN num c6 ;
            ON c6.num > c5.num ;
        INNER JOIN num c7 ;
            ON c7.num > c6.num ;
    INTO CURSOR Table1
? SECONDS() - m.lnSec


Posted via ActualForum NNTP Server 1.3

14 янв 06, 21:47    [2255294]     Ответить | Цитировать Сообщить модератору
 Re: 7 из 28  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6901
!Guest
попробуй так

Чтобы алгоритм был понятнее:
FOR x1=1 TO 28-6
FOR x2=x1+1 TO 28-5
FOR x3=x2+1 TO 28-4
FOR x4=x3+1 TO 28-3
FOR x5=x4+1 TO 28-2
FOR x6=x5+1 TO 28-1
FOR x7=x6+1 TO 28
15 янв 06, 05:07    [2255634]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить