|
|
|
help!
|
|||
|---|---|---|---|
|
#18+
опять недосмотрел, наверна один индекс на iif(len(field_1)=0,0,1); +iif(len(field_2)=0,0,1); +iif(len(field_3)=0,0,1); ...... остальные +iif(len(field_10)=0,0,1) будет всё-таки быстрее чем на каждое отдельное поле Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 17:59:19 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Hi 1024! > iif(len(field_1)=0,0,1) ВСЕГДА даст 1 - тебе домашнее задание - догадаться почему :) 2 SDF Перво наперво нужно описать алгоритм заполнения таблицы, а не "дополнительные ограничения". Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 00:25:11 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Struktura tablitsu takaya (dbf) nn C 8 AA1 N 2 1-9 AA2 N 2 10-20 AA3 N 2 21-30 AA4 N 2 31-40 AA5 N 2 41-50 AA6 N 2 1-9 AA7 N 2 10-20 AA8 N 2 11-30 AA9 N 2 31-40 AA10 N 2 41-50 Na 1-y pole mne nado pisat nomer zapisi.(recno) Kajdiy pole doljno napolnyatsa s cluchaynimi chislomi, napirmer aa1 i aa6 doljno napolnyatsa sluchaynimi cislami ot 1 do 9 aa2 i aa7 doljno napolnyatsa sluchaynimi cislami ot 10 do 20 i t.d. repl aa1 with 1 +ROUND((10-1)*RAND(),0) repl aa6 with 1 +ROUND((10-1)*RAND(),0) repl aa2 with 10 +ROUND((20-10)*RAND(),0) repl aa7 with 10 +ROUND((20-10)*RAND(),0) ............................. ................. ................... No, menya seychas interesuet vot eti voprosi: No v odnom zapise v eti 10 poley doljni tolko 5 nepustie znachenie, i ne povtoryayushixsya. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 07:32:57 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
знать бы смысл такой задачи - было бы проще... а пока что можно сказать что твой вариант заполнения полей мягко говоря не очень хорош! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 09:07:13 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Ya znayu chto "ne ochen xorosh", na eto ochen mnoqo vremya idyot, i poetomu sprashivayu kak mojno podruqomu (po bistree) delat? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 09:20:05 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Sorry, но для продолжения я настаиваю: знать бы смысл такой задачи - было бы проще... Обработка таблички в 20,000,000 записей с записью номера записи в символьное поле и набором случайных чисел не вдохновляет без ощущения реальной необходимости! Для чего нужны сто миллионов случайных цифр да ещё и с контролем??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 09:50:03 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Komissar, eta tablitsa nujen mne dlya lotareynie iqri. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 10:09:26 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
так я и думал! :-))) 1. при твоих REPLAC'ах все поля будут НЕпустыми... 2. а допустимо ли чтобы аа1#0 и аа6=0? или aa1=aa2=aa3=aa4=aa5=aa6 и остальные #0? не совсем понятен алгоритм заполнения "парных" полей... 3. сколько бы времени это всё не занимало - ведь нужно одноразовое заполнение таблицы? или она меняется безконечно чтоб никто никогда не выграл приз??? ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 10:31:44 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
1. Ctobi etoqo ne bilo , ya dumal nayti 5 sluchaynie pole, i eti poley napolnit. 2. аа1#0 и аа6=0 dopustimo. aa1=aa2=aa3=aa4=aa5=aa6 ne dopustimo V odnoy zapisi ne doljno povtoryayushix znachenie. Dlya kojdiy pole yest min. i max. znachenie. Iz etix chisel nado sluchaynie vibrat. Napirmer: Dlya AA1 I AA6 1-9 Dlya AA2 I AA7 10-20 Dlya AA3 I AA8 21-30 Dlya AA4 I AA9 31-40 dlya AA5 I AA10 41-50 3. Net , ne menyaetsa. Da, odnorazoviy zapolnenie nujen. No delo v tom chto, seychas u menya ochen malo vremeni chtobi sozdat etu tablitsu, i yeshyo ya dumayu chto yesli zapolnenie tak dolqo, sama proqramma toje budet dolqo rabotat. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 10:52:38 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
1. условие "nayti 5 sluchaynie pole" противоречит условию "aa1=aa2=aa3=aa4=aa5=aa6 ne dopustimo"!!! а вдруг окажется что ты "случайно" заполниш поля с 7-го по 10-ое? 2. "yesli zapolnenie tak dolqo, sama proqramma toje budet dolqo rabotat" - ни в коем случае!!! кстати а ЧТО и КАК потом должна будет делать программа? 3. если смогу - попробую пример сделать и время заполнения засечь! ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 11:08:53 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
"Igor Korolyov" <nospam@sql.ru> wrote in message news:1852703@sql.ru... Hi 1024! > iif(len(field_1)=0,0,1) ВСЕГДА даст 1 - тебе домашнее задание - догадаться почему :) ----------------------------------- ? iif(len("test")=0,0,1) >1 ? iif(len("")=0,0,1) >0 я ж написал, это пример а не решение. Домашнего задания не понял. О пробелах в конце чтоли? Ну, для полей можно alltrim добавить, сути это не меняет. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 11:12:00 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Komissar,ya chto-to delal. Vi toje posmotrite pojalusta! No ya znayu chto pri takoy tablitsu ochen dolqo budet rabotat. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 11:57:47 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
1. aa1=aa2=aa3=aa4=aa5 dopustimo , yesli eti znachenie =0 aa1=aa2=aa3=aa4=aa5=aa6=0 ne dopustimo, potomu chto iz etix poley (aa1...aa10) 5 ne dlojen pustim 2.Ya primer otpravil uje. Vse pole bb (bb1...bb5) vseqda dlojen bit <>0, i zapolnenie poley bb (bb1...bb5) anoloqichen poley aa (aa1...aa5). 3. Bil bi bloqadaren, i yeshyo mne interesno , kto-to druqoy kak budet reshat etu zadachu. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 12:11:06 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
я вернулся... ;-) кстати вопросик - а все 20,000,000 записей должны быть уникальны? не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 16:02:10 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Komissar, yesli poluchitsa eto xorosho,no poka ya ob etom ne dumayu.poka mojno i bez etoqo. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 16:22:21 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Лови... Смотри... 1. RAND(), без контроля дублей. У меня заняло 14 минут. 2. RAND(), с контролем дублей. Пока ходил оно за пару часов почти 15,000,000 записей сотворило. Тормоза серьезные... ;-) 3. А надо ли вообще RAND()? Ценой некоторых раздумий можно вообще от них отказаться... Если в этом примере время 1.35 сек., то на такое же количество записей в первых примерах уходит соответственно - 27 и 35 сек. P.S. В примерах с RAND() делал символьные поля, чтоб индекс лучше смотрелся! ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 18:26:21 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Hi 1024! > ? iif(len("")=0,0,1) > >0 Некоректно - ты же написал это для ПОЛЯ (странно было-бы в запросе делать такое хитрое выражение для переменных :) ) - а символьные поля вплоть до VFP9 имеют строго фиксированную размерность - и уж что что, а пустота поля на LEN() никак не влияет. Конечно можно применить ALLTRIM() и даже в большинстве случаев RTRIM() - но согласись, что EMPTY(поле) куда как проще, нагляднее и быстрее чем LEN(ALLTRIM(поле)) = 0 2 SDF Нельзя ли поточнее указать правила создания комбинаций для лотереи - я как-то слабо представляю себе лотерею, где могут быть комбинации из РАЗНОГО количества чисел - т.е. в одном случае 5 чисел а в другом скажем 8... Опять же не ясна роль 10 полей - ты так делаешь для удобства последующей распечатки (ну или что там с этой таблицей происходит), или просто таким образом задаешь ещё одно неявное условие - "в комбинации не может быть более 2-х чисел из одного десятка"... Но тогда логичнее сделать в таблице всего 5 полей (ну или сколько должно быть чисел в комбинации), а проверку этого условия сделать отдельно... В общем пока не ясен алгоритм (правила которым должны удовлетворять комбинации) бессмысленно даже браться за это дело. P.S. Ограничения на "не более 3 чисел из одного десятка" как я понимаю встречаются в русском лото - там в карточке всего 3 строки, а числа рассортированы по колонкам в зависимости от того к какому десятку они принадлежат. В более простых лотереях обычно таких ограничений нету - и даже комбинация 1,2,3,4,5 (ну и 6 ;)) вполне может применяться :) Т.е. там главное условие - это отсутствие повторений... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 01:43:23 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov, u menya struktura tablitsu (dlya raspechatki) takaya kak bask1.dbf. U nas toje v kartochke vseqo 3 stroka, a chisla rassortirovani po kolonkam v zavisimosti ot tovo k kakomu desyatku oni prinadlejit. No, dlya raboti proqrammi iz etoy tablitsu (bask1.dbf) poluchayu noviy -bask.dbf. V etoy tablitse (bask.dbf) odno kartochka -odin zapis. Pervie 2 zapisi aa1...aa10 ,posledniy zapis-bb1...bb5. Ya dumal, tak proqramma bistree budet rabotat. (bask.dbf-dlya proqrammi, bask1.dbf- dlya raspechatki kartochki) Komissar, spasibo, qarazdo bistree rabotaet , chem u maenya.Pro 3-vo varianta ya voobshi ne dumal, etoluchshiy varian pomoemu. No yeshyo menya interesuet, maya proqramma (sdf.rar) s takoy bolshoy tablitsey kak budet rabotat? Ya proveril tolko s 400000 zapisami. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 07:51:44 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Единственный минус 3-го варианта - необходимость очень внимательно писать код заполнения... не запутаться... т.е. сначала я бы составил перечень комбинаций на бумаге, а потом уже садился за компьютер! или вообще подумать над упрощением этого кода... а то я его "на ходу" нарисовал... наверняка можно упростить и сократить... Насчет твоей программы - извини, не врубился в алгоритм... да и времени не хватало... можешь описать его подробно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 10:26:49 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
Alqoritm takoy: Esli na 1-m xode kakoy to nomer vishel , dopustim 12 (invalue=12), ya v tablitse bask.dbf naxoju vse eti znachenie, i obnulyayu ix. Na 2-m xode yesli vishel , dopustim 43 (invalue=43), ya v tablitse bask.dbf naxoju vse eti znachenie, i obnulyayu ix. i.t.d. Na 1-m ture viqrivaet tot bilet, kotoriy 1-m vse pole AA (aa1...aa10), ili vse pole BB (bb1...bb5) obnulyaetsa, (cem_a=0 ili cem_b=0) eto znacit vse chislo v etix poley uje vishli. Potom chitayu skolko bilet viqrival na 1-m ture (say1=reccount()), i kakie imenno bileti (nomer biletov-nn),i v kakom xode (GEDISH) viqrival. Etot kod s 400000 zapisami rabotaet normalno, no 20000000 zapisami ya dumayu mne trudno budet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 11:51:46 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
"Igor Korolyov" <nospam@sql.ru> wrote in message news:1857024@sql.ru... согласись, что EMPTY(поле) куда как проще, нагляднее и быстрее чем LEN(ALLTRIM(поле)) = 0 ************ я ж написал - это пример. А если использовать empty то в rushmore индекс участвовать не будет. Хотя фик его знает, там вроде выражение. Короче, задача с спортлото мало относится к базам данных. Загнать всё в массив и обрабатывать. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 12:53:24 |
|
||
|
help!
|
|||
|---|---|---|---|
|
#18+
1024Загнать всё в массив и обрабатывать. хм... парню надо двадцать миллионов вариантов!!! в массив??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 12:58:06 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33256829&tid=1593344]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
179ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 181ms |
| total: | 436ms |

| 0 / 0 |
