powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 7 из 28
10 сообщений из 10, страница 1 из 1
7 из 28
    #33480473
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Как можно из 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
...
Рейтинг: 0 / 0
7 из 28
    #33480532
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выбрать, то проще, наверное так:
SELECT DISTINCT A1, a2, a3, a4, a5,A6,A7 FROM Table1

С уважением, Алексей
...
Рейтинг: 0 / 0
7 из 28
    #33480547
!Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй так
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
...
Рейтинг: 0 / 0
7 из 28
    #33480556
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне сначало надо создать такой таблицу.
...
Рейтинг: 0 / 0
7 из 28
    #33480769
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 asd456

Посмотри здеся, может чем-то поможет.
/topic/244932&hl=
...
Рейтинг: 0 / 0
7 из 28
    #33480837
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1,2,3,4,5,6,7 и 2,1,3,4,5,6,7 считаются одинаковыми вариантами или нет?
С уважением, Алексей
...
Рейтинг: 0 / 0
7 из 28
    #33481384
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да.
...
Рейтинг: 0 / 0
7 из 28
    #33481500
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 asd456
А выбрать из только из одного поля где нет совпадений из других?
...
Рейтинг: 0 / 0
7 из 28
    #33483108
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi !Guest!

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

Код: 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.
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
...
Рейтинг: 0 / 0
7 из 28
    #33483229
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
!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
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / 7 из 28
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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