Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Zapolneniya kartochki loto / 25 сообщений из 37, страница 1 из 2
04.10.2006, 10:43
    #34030730
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Privet.
Nado iz 20 tsifr (ot 1 do 20) poluchit vse vozmojnie varianti po 14 poley.
Struktura tablitsi a1,a2,a3....a14. Nado eto tablitsi napolnit ot 1 do 20, tak kak v odin zapis ne doljen povtoryayushie tsifri.
...
Рейтинг: 0 / 0
04.10.2006, 13:25
    #34031455
Jura.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Достаточно пространственно формулируете вопросы
И если я правильно понял то Вы хотите получить следующее

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
LOCAL lcStrUpdate,i,j 
CREATE CURSOR myTable ;
	(a1 n( 2 ),a2 n( 2 ),a3 n( 2 ),a4 n( 2 ),a5 n( 2 ),a6 n( 2 ),a7 n( 2 ),a8 n( 2 ),a9 n( 2 ),a10 n( 2 ),a11 n( 2 ),a12 n( 2 ),a13 n( 2 ),a14 n( 2 ))
lcStrUpdate=''
FOR I= 1  TO  20 
	FOR j=I TO  13 +I
		lcStrUpdate=lcStrUpdate+IIF(!EMPTY(lcStrUpdate),',','')+LTRIM(STR(IIF(j> 20 ,j- 20 ,j))) 
	ENDFOR 
	lcStrUpdate='('+lcStrUpdate+')'
		INSERT INTO myTable ;
		(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) ;
		VALUES &lcStrUpdate
	lcStrUpdate=''
ENDFOR 
Или если я не правильно понял уточните что Вы хотите получить почему 14 полей и 20 цифр?
...
Рейтинг: 0 / 0
04.10.2006, 13:41
    #34031539
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
No, mne nado vse vozmojnie varianti. Dopustim:
1,2,3,.....14
1,2,3,.....15
1,2,3,.....16
...............
1,2,3,.....20

2,3,4,.....15
2,3,4,.....16
2,3,4,.....17
..............
2,3,4,.....20

3,4,5,......16
3,4,5,......17
3,4,5,......18
..............
3,4,5,......20
...
Рейтинг: 0 / 0
04.10.2006, 14:15
    #34031731
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
А зачем такое, скажите пожалуйста?
...
Рейтинг: 0 / 0
04.10.2006, 14:21
    #34031776
Jura.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
axnsdfNo, mne nado vse vozmojnie varianti. Dopustim:
1,2,3,.....20

А что выкинуть то ?
в 14 полей 20 цифирок ну ни как
...
Рейтинг: 0 / 0
04.10.2006, 14:36
    #34031839
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Vot primerno takoe:
1,2,3,5,6,7,8,9,10,11,12,13,14
1,2,3,5,6,7,8,9,10,11,12,13,15
1,2,3,5,6,7,8,9,10,11,12,13,16
.......................................
1,2,3,5,6,7,8,9,10,11,12,13,20


1,2,3,5,6,7,8,9,10,11,12,14,15
1,2,3,5,6,7,8,9,10,11,12,14,16
1,2,3,5,6,7,8,9,10,11,12,14,17
.......................................
1,2,3,5,6,7,8,9,10,11,12,14,20

..........................................
.........................................

2,3,5,6,7,8,9,10,11,12,13,14,15
2,3,5,6,7,8,9,10,11,12,13,14,16
2,3,5,6,7,8,9,10,11,12,13,14,17
..........................................
2,3,5,6,7,8,9,10,11,12,13,14,20


2,3,5,6,7,8,9,10,11,12,13,15,16
2,3,5,6,7,8,9,10,11,12,13,15,17
2,3,5,6,7,8,9,10,11,12,13,15,18
..........................................
2,3,5,6,7,8,9,10,11,12,13,15,20
.........................
...
Рейтинг: 0 / 0
04.10.2006, 15:44
    #34032212
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Ну, сделай 14 вложенных циклов. Неужели так сложно! Примерно раз в полгода один и тот же вопрос повторяется. Сделай поиск по данному форуму по слову "лотерея"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LOCAL lnFields, lnMaxValue
lnFields =  14 
lnMaxValue =  20 

FOR a1= 1  TO m.lnMaxValue - m.lnFields
	FOR a2=a1+ 1  TO m.lnMaxValue - m.lnFields +  1 
		FOR a3 = a2+ 1  TO m.lnMaxValue - m.lnFields +  2 
			...
			INSERT INTO MyTab (f1,f2,f3,...) VALUES (a1,a2,a3,...)
		ENDFOR
	ENDFOR
ENDFOR
...
Рейтинг: 0 / 0
10.10.2006, 13:05
    #34044106
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
U menya postonovka zadachu manyalsa. Nado iz 90 chisel vibrat 5 i pomestit ix v tablitsu (v tablitse 9 poley) sluchaynom obroze, tak kak v kajdom zapise doljno 5 tsifra (4 ostalnie pusto)
Zdes nashel vot takoy kod (1.prg). Nemnoshka kod menyal i eto menya ustraevaet.
No, mne nado chto iz kajdoy tsifre v tablitse prisutstvola xotyabi primerno odinokoviy raz. T.e. ne bilo tak :chislo 12 prisutstvola dopustim 1000 raz, a chislo 67 dopustim 80 raz.
A kak eto delat ya ne moq.
...
Рейтинг: 0 / 0
11.10.2006, 10:39
    #34046357
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Obyasnite pojalusta, kak eto mojno delat nad etim kodom?
...
Рейтинг: 0 / 0
11.10.2006, 11:02
    #34046427
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Почитай вот эту тему

http://www.sql.ru/forum/actualthread.aspx?tid=293115
...
Рейтинг: 0 / 0
11.10.2006, 11:16
    #34046483
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Da, v etom primere (11.prg) vse tsifri v tablitse odinokiviy raz prisutstvuet. (Mne tak i nado) No, zdes vse 7 pole nado napolnit.
Mne nado iz 9-i sluchaynim obrozam tolko 5 napolnit, pri etom nado udovlotvorit predudushie usloviya(uchastvovat odinakoviy raz).
...
Рейтинг: 0 / 0
12.10.2006, 13:52
    #34050478
Zapolneniya kartochki loto
Ya kod nemnoqo menyal i poluchilos sleduyushee:aaa.zip.
Bigtable.dbf v 1-m pole doljen pomestitsa tsifri ot 1 do 9.
No bolshe 9 toje pomeshaetsa. I v ostalnix poley toje samiy.
Vcem moya oshibka ? Pomoqite pojalusta
...
Рейтинг: 0 / 0
12.10.2006, 15:31
    #34050957
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
V chem moya oshibka ?
...
Рейтинг: 0 / 0
13.10.2006, 09:18
    #34052482
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Posmotrite pojalusta vot etot kod
...
Рейтинг: 0 / 0
13.10.2006, 10:58
    #34052867
axnsdf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
...
Рейтинг: 0 / 0
14.10.2006, 01:24
    #34054927
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Твое условие не понятно.

Рассмотрим простейший вариант. 3 числа из 5 возможных. Просто "тупо" запишем все варианты

123
124
125
134
135
145
234
235
245
345

Теперь подсчитаем, сколько раз встречается каждое число? Окажется, что ВСЕ числа встречаются одинаковое количество раз. Ровно 6 раз.

Т.е., получается, что если перебрать все возможные варианты, то каждое число встретится одинаковое количество раз!

Теперь берем опять же "в тупую" варианты 5 из 90

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
aa=seconds()
create cursor Variant (a1 N( 2 ), a2 N( 2 ), a3 N( 2 ), a4 N( 2 ), a5 N( 2 ))
FOR v1= 1  TO  86 
	FOR v2 = v1+ 1  TO  87 
		FOR v3 = v2+ 1  TO  88 
			FOR v4 = v3+ 1  TO  89 
				FOR v5 = v4+ 1  TO  90 
					INSERT INTO Variant (a1,a2,a3,a4,a5) ;
						VALUES (v1,v2,v3,v4,v5)
				ENDFOR
			ENDFOR
		ENDFOR
	ENDFOR
ENDFOR
?seconds()-m.aa
set talk on

Придется немного подождать. У меня это все добро рассчитывалось около 3 минут. Получилось 43`949`268 вариантов (записей). Ради интереса можешь подсчитать сколько каждое число встречалось раз.

Код: plaintext
1.
2.
3.
4.
5.
6.
k= 56  && число, количество повторов которого ищем
select VARIANT
SET TALK OFF
COUNT FOR InList(m.k,a1,a2,a3,a4,a5) TO VarK
SET TALK ON
?m.VarK

Тоже около минуты ищет. Окажется, что все числа встречались одинаковое количество раз = 2`441`600

И чего ты хочешь получить? Ограничение по повторяемости? Например, чтобы каждое числов встречалось только 100 раз?
...
Рейтинг: 0 / 0
14.10.2006, 15:14
    #34055154
axndsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
ВладимирМ
И чего ты хочешь получить? Ограничение по повторяемости? Например, чтобы каждое числов встречалось только 100 раз?

Da, imenno eto ya xochu.
Ya ponimayu chto yesli vse vozmojnie varianti vibrat toqda s kojdoqo chislo odinokoviy raz budet prisutstvovat.
No, yesli vse vozmojnie varinti, toqda poluchaetsa kak Vi qovorite 43`949`268 variantov. A yesli mne dopustim, tolko 5000000 iz etix zapisey nujno budet, toqada kak mne bit?
Ya je ne moqu iz etix 43`949`268 variantov vibrat 1-y 5000000.
...
Рейтинг: 0 / 0
14.10.2006, 16:23
    #34055194
axndsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Da, i yeshyo u menya v tablitse ne 5 a 9 poley yest i v kajduyu pole svoi "desyatki"
nado pomestit: ( u menya: araliq.dbf)
1-oe pole: ot 1 do 9
2-oe pole: ot 10 do 19
3-oe pole: ot 20 do 29
4-oe pole: ot 30 do 39
5-oe pole: ot 40 do 49
6-oe pole: ot 50 do 59
7-oe pole: ot 60 do 69
e pole: ot 70 do 79
9-oe pole: ot 80 do 90

A variant.dbf ya sozdal dlya toqo chto, znat chislo v bigtable.dbf v kakom pole (ot 1 do 9) doljen pomestitsa.
...
Рейтинг: 0 / 0
15.10.2006, 13:30
    #34055607
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Это попытка заполнения карточки лото? Так в такой постановке это бессмысленно. Карточка заполняется по более сложному алгоритму. Надо рассматривать не заполнение одной строки карточки, а заполнение самой краточки. Целиком.

Как выражался персонаж одного фильма: "Огласите весь список, пожалуйста".

Твоя постановка не то, чтобы совсем непонятна, но непонятно, почему ты сам не можешь реализовать такой примитивный алгоритм. А оказывается, что ты просто не все рассказываешь. Тебе дают решение, а ты тут же выходишь с претензиями: это работает, но надо не совсем так, как я сказал. Так скажи сразу, как НАДО. Без промежуточных этапов. Думаешь интересно делать пустую работу?
...
Рейтинг: 0 / 0
15.10.2006, 15:04
    #34055681
axndsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Delo vtom chto u menya 2 raznie kartochki budet. V perviy budet tolko odna stroka. Vot seychas ya eto xochu sdelat. (Ya dumayu chto zdes ponyatno chto ya xochu: Tsifri ot 1 do 90 . Nado ix pomestit table (bigtable.dbf) tak chto iz 9 poley 4 ostanitasa pustim. i v kajdom pole svoyi tsifri (1-y pole ot 1 do 9, 2-oe pole ot ot 10 do 19 i t.d.... 9 oe pole ot 80 do 90 ))

Vo 2-m tip kartochki toje samiy usloviya, tolko zdes ne 1, a 6 stroka budet.

Zdes eto tema (lotereya) mnoqo raz obsujdalas. No, etot vopros do kontsa ne viyesnilas.
Poetomu tolko "poisk" ne pomaqlo, i xotel obrashatsa s voprosami
...
Рейтинг: 0 / 0
16.10.2006, 03:10
    #34055952
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Думаешь стало понятнее?

Ограничимся пока двумя полями:

Первое поле принимает значение от 1 до 9.
Второе поле принимает значение от 10 до 19

Надо заполнить каждое поле случайным числом из выделенного набора.

Ну и? Дальше-то что? Как должны быть взаимосвязаны значения из этих двух полей? Просто все возможные не повторяющиеся варианты? Ну, очевидно, что их будет ровно 90 (9*10). Не все? А по какому принципу будем отбирать?

Это одна из причин, почему тема так и осталась "не раскрыта". Никто так и не смог внятно сформулировать что же ему надо-то.
...
Рейтинг: 0 / 0
16.10.2006, 09:23
    #34056159
axndsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Seychas ya postarayus sformilrovat svoyu zadachu.
Kartochka budet paxoje na RUSSKOE LOTO.
Srazu skaju chto oqranichivat dvumya polyami ne poluchitsa. Potomu chto,
V tablitse 9 poley, i
1-oe pole prinimaet znachenie ot 1 do 9,
2-oe pole prinimaet znachenie ot 10 do 19,
3-oe pole prinimaet znachenie ot 20 do 29,
4-oe pole prinimaet znachenie ot 30 do 39,
5-oe pole prinimaet znachenie ot 40 do 49,
6-oe pole prinimaet znachenie ot 50 do 59,
7-oe pole prinimaet znachenie ot 60 do 69,
e pole prinimaet znachenie ot 70 do 79,
9-oe pole prinimaet znachenie ot 80 do 90.

I VARIANT
V kajdoy kartochke odna stroka, v kajdoy stroke 9 poley, i v kajdoy stroke 5 chisel, 4 pustoy.
Iz etix 9-ti poley nado 5 zapolnit etimi tsiframi iz videlennoqo nabora (4 ostanitsa pustoy)
Snachala ya xotel poluchit vse vozmojnie varianti. V etom sluchie iz kajdoqo tsifra v tablitse budet odinakoviy raz prisutstvovat. No polucaetsa ochen mnoqo variantov. Poetomu seycay xochu poluchit kakoy to oqranichonniy kolichestvo
variantov (dopustim 5000000), no i zdes toje nado chtobi v tablitse iz kajdoqo chislo odinakoviy raz bilo. Yesli proqrammu budem 'prervat' koqda zapisi doshli do kolichestvo nujnoqo varianta (dopustim 5000000), toqda eto usloviya ne udovletvoryaetsa (v tablitse iz kajdoqo chislo neodinakoviy raz).

Vot imenno vopros v etom.
II VARIANT.
V odnom bilete 2 iqrovie kartochki.
V kajdoy kartochke 3 stroka, v kajdoy stroke 9 poley, i v kajdoy stroke 5 chisel, 4 pustoy.
Ponyatno chto v kajdom variante v odnom kartochke (bilet) povtoryayushie chislo ne doljna bit. (v 1-m variante v odnom stroke , 2-m variante v 6 stroke)



Neznayu vseyo moq obyasnit ili net?
...
Рейтинг: 0 / 0
16.10.2006, 11:24
    #34056495
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
С первым понятно. Направление примерно такое:

Пустое (нулевое) значение - это тоже значение . Значит, твой диапазон интервалов несколько меняется:

Первое поле - от 0 до 9
Второе поле - от 10 до 19 И значение 0
Третье поле - от 20 до 29 И значение 0
и т.п.

На момент формирования списка значений одной строки делаешь проверку дополнительного условия - должно быть ровно 4 значения 0.

Нужна еще одна таблица (курсор) - счетчик из 90 строк. Ключем каждой строки будет число от 1 до 90, а значение - количество раз, которое использовалось это число при расчете.

На момент формирования списка значений одной строки проверяешь не превысило ли количество использований какого-либо числа предельно допустимое значение. Если превысило, игнорируешь этот вариант и запускаешь расчет по новой. При этом надо проверить, что в каждом диапазоне значений еще можно использовать хотя бы одно значение.

Если сформированная строка корректна, то увеличиваешь количество использованных значений в таблице-счетчике и делаешь итоговую запись.

В общем, все относительно просто, но нужно некоторое время, чтобы перевести эту логику в код.
...
Рейтинг: 0 / 0
16.10.2006, 11:42
    #34056555
axndsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Ya ponimayu chto ne ochen slojniy, daje kakoy to kod qotov, chtobi poluchit eti varianti. No, u menya odin iz s samiiy vajniy usloviyami (s kojdoqo chislo odinokoviy raz prisutstvovat) ni kak ne poluchaetsa.

ВладимирМС первым понятно.
Vtooroy variant toje samiy, tolko zdes nado poluchit ne odna stroka, a 6 takix
...
Рейтинг: 0 / 0
17.10.2006, 08:21
    #34058913
axndsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zapolneniya kartochki loto
Kajetsa v svoem kode ya nashel qde moya oshibka.
Yesli nayti vse vozmojnie varianti poluchaetsa 12565000 zapisey.
Vse tsifri naxodyashixsya krome 1-y i posledniy pole prisutstvuet odinakoviy raz:698500.
Tsifri naxodyashixsya v 1-m pole (1,2,3,...9) prisutstvuet 735000 raz, v poslednom pole (80,81,82,...90) 665000 raz
Delo v tom cto u menya v araliq.dbf takoy:
1 1-9 (vseqo 9 tsifr)
2 10-19 (vseqo 10 tsifr)
3 20-29 (vseqo 10 tsifr)
4 30-39 (vseqo 10 tsifr)
5 40-49 (vseqo 10 tsifr)
6 50-59 (vseqo 10 tsifr)
7 60-69 (vseqo 10 tsifr)
8 70-79 (vseqo 10 tsifr)
9 80-90 (vseqo 11 tsifr)

T.e. 2-m,3-m,4-m,5-m,6-m,7-m,8-m pole 10 tsifri naxoditsa, v 1-m 9, v poslednom 11.
Naverno prichino v etom chto yesli daje poluchit vse vazmojnie varianti, toqda toje
tsifri prisutstvuet ne odinakoviy raz. No, usloviya takaya, ya eto ne moqu menyat.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Zapolneniya kartochki loto / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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