Вверх ↑
Этот топик читают: Гость
Ответов: 96
Рейтинг: 1
#16: 2010-12-19 15:21:36 ЛС | профиль | цитата
Да конечно, я сделал к фоновому, для увеличения скорости
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#17: 2010-12-19 21:06:31 ЛС | профиль | цитата
301992, а зачем в схеме сделан набор чисел в строку и затем перебор символов из этой строки? А сразу после генерации числа над нельзя делать необходимые операции?
карма: 27
0
Ответов: 96
Рейтинг: 1
#18: 2010-12-19 21:47:55 ЛС | профиль | цитата
Набор чисел в строку сделан, для следующего. Данная схема работает с последовательностями определенной длины 16, 32, 64 и 128 символов. Я пробовал генерировать простые числа и потом их пропускать через элемент XOR, но сталкнулся с тем, что последовательность более 32 разрядов в десятичном виде не идет, знакомый говорит, что из-за того, что комп 32 разрядный и предложил работать с последовательностями как со строкой. Я для экперимента прогнал через конвертор (двоичные ---> десятичные) последовательность из 64 единичек и получил на выходе число -1. Наверное можно увеличить скорость работы если данную задачу как-то прикрутить к процессору, или ее часть, но я в этом не силен.

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

0
Администрация
Ответов: 15295
Рейтинг: 1519
#19: 2010-12-20 01:45:36 ЛС | профиль | цитата
301992 писал(а):
Данная схема работает с последовательностями определенной длины 16, 32, 64 и 128 символов

так все же бит или символов? В любом случае с чем бы она там не работает генерировать последовательность по одному биту крайне не разумно как и хранить ее в виде строки. И опять таки же ответа на вопрос я не увидел - зачем генерировать строку из бит и затем парсить ее обратно в биты?
карма: 27
0
Ответов: 96
Рейтинг: 1
#20: 2010-12-20 05:11:59 ЛС | профиль | цитата
Dilma писал(а):
зачем генерировать строку из бит и затем парсить ее обратно в биты?

Просто я не знаю как иначе можно создавать последовательности длиной 16, 32, 64 и 128 символов. Если есть другой способ, то рад буду им воспользоваться.
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#21: 2010-12-20 09:03:55 ЛС | профиль | цитата
301992 писал(а):
Если есть другой способ, то рад буду им воспользоваться

Хотя, работа со строкой, где каждый символ 0 или 1 является отображением бита, и является распространенным в силу своей простоты, но отличается крайне медленной скоростью обработки. Можно предложить разбить последовательность на слова, длиной 8 или 16 бит и работать с числами, используя двоичную арифметику с переносами от младшего слова к старшему (или наоборот). Переносом в следующее слово будет бит, разряд которого больше разрядности слова на один, в приведенных случаях, это будет 8-й и 16-й бит, считая от нуля, и правильно это будет для умножения и сложения. Для вычитания и деления, операция будет несколько отличаться, по приичине того, что флаг переноса придется эмулировать виртуально
карма: 22

0
Ответов: 96
Рейтинг: 1
#22: 2010-12-20 13:06:26 ЛС | профиль | цитата
А как это реалиховать? Я не силен в прграмировании и прошу привести небольшой пример
------------ Дoбавленo в 13.06:
Я [quote=Dilma]301992, а зачем в схеме сделан набор чисел в строку и затем перебор символов из этой строки? А сразу после генерации числа над нельзя делать необходимые операции?[/quote] Наверное это самый быстрый вариант вот попробовал сделать

Add(Service,2953706,24,149)
{
link(onStart,11895990:doStart,[(66,155)(66,223)])
link(onStop,11895990:doStop,[(66,162)(66,230)])
}
Add(Hub,8682092,364,105)
{
InCount=2
OutCount=5
link(onEvent1,8723035:doFor,[(390,111)(390,165)(268,165)(268,241)])
link(onEvent5,13259424:In,[])
}
Add(For,3845777,217,105)
{
End=10000000
PColor(onStop,16776960)
link(onEvent,8682092:doEvent1,[])
link(onStop,14621544:doWork3,[(569,118)(569,272)])
}
Add(Memory,4207779,515,31)
{
Default=Integer(64)
}
Add(For,6240138,86,149)
{
End=1
PColor(onStop,16776960)
link(onEvent,14621544:doWork1,[(504,155)(504,258)])
link(onStop,11019750:doEvent1,[(129,162)(129,162)])
}
Add(GetDataEx,8472275,515,78)
{
link(Data,4207779:Value,[])
}
Add(LineBreakEx,14745359,695,117)
{
Caption="TestString"
Type=3
link(_Data,8472275:Var3,[(701,83)])
}
Add(StrList,6669432,951,237)
{
FileName="1.txt"
AddType=1
}
Add(TimeCounter,11895990,77,217)
{
link(onStart,6240138:doFor,[(121,223)(121,189)(74,189)(74,155)])
link(onStop,10216626:doOperation,[(117,230)(117,237)])
}
Add(Message,7190578,182,231)
{
}
Add(Math,10216626,126,231)
{
OpType=3
Op2=60000
link(onResult,7190578:doMessage,[])
}
Add(MultiElement,14621544,889,252)
{
link(onEvent1,6669432:doAdd,[(934,258)(934,243)])
link(onEvent2,6669432:doSave,[(934,265)(934,278)])
link(Data1,6858062:getVar,[])
}
BEGIN_SDK
Add(EditMulti,11035696,357,28)
{
EventCount=2
WorkCount=3
DataCount=1
Width=552
Height=256
link(doWork1,5045100:doEvent1,[])
link(doWork2,10354291:doCalc,[(385,41)(385,167)])
link(doWork3,11364775:doEnum,[(367,48)(367,111)])
}
Add(StrList,12946991,504,42)
{
}
Add(ArrayRW,2327940,504,161)
{
link(onRead,1321327:doOperation,[])
link(Array,9789873:Var1,[(510,100)])
}
Add(For,7802172,406,42)
{
End=128
link(onEvent,8437616:doData,[])
}
Add(Hub,5045100,378,28)
{
OutCount=3
link(onEvent1,12946991:doClear,[(495,34)(495,55)])
link(onEvent2,7802172:doFor,[(399,41)(399,48)])
link(onEvent3,12519398:doOperation,[(584,48)(584,55)])
}
Add(Memory,913443,546,42)
{
Default=Integer(0)
}
Add(GetDataEx,9789873,518,95)
{
link(Data,12946991:Array,[])
}
Add(ArrayRW,11401637,539,210)
{
link(Array,9789873:Var2,[(545,130)(524,130)])
link(Value,1321327:Result,[])
}
Add(Hub,8912539,469,161)
{
link(onEvent1,2327940:doRead,[])
link(onEvent2,11401637:doWrite,[(495,174)(495,223)])
}
Add(Math,1321327,553,161)
{
Op2=1
ResultType=0
}
Add(ArrayEnum,11364775,567,105)
{
link(onItem,15919723:doOperation,[])
link(onEndEnum,11035696:onEvent2,[(606,118)(606,41)])
link(Array,9789873:Var3,[(573,100)])
}
Add(StrCatDelim,6470259,826,105)
{
Delimiter=";"
link(onStrCatDlm,11035696:onEvent1,[(866,111)(866,34)])
link(Str2,11364775:Item,[(839,93)(695,93)(695,154)(573,154)])
}
Add(DoData,8437616,455,42)
{
Data=Integer(0)
link(onEventData,12946991:doAdd,[])
}
Add(Math,12519398,777,49)
{
OpType=2
Op2=-1
link(Op1,10490614:Var3,[(783,36)])
}
Add(GetDataEx,10490614,728,31)
{
Angle=3
link(Data,11035696:Data1,[(363,36)])
}
Add(FastMathParse,10354291,413,161)
{
MathStr="(%1/2)+64"
link(onResult,8912539:doEvent1,[])
}
Add(FTCG_Tools,15919723,707,105)
{
link(onTrue,6470259:doStrCatDlm,[])
link(Op2,11364775:Index,[(713,97)(580,97)])
link(Op21,10490614:Var2,[(720,97)(734,97)])
link(Op22,12519398:Result,[(727,97)(783,97)])
}
BEGIN_SDK
Add(EditMultiEx,8496209,21,21)
{
WorkCount=#11:doOperation|
EventCount=#6:onTrue|
DataCount=#3:Op2|4:Op21|4:Op22|
link(doOperation,13206723:doOperation,[(49,27)(49,90)])
}
Add(FT_Math,13206723,77,84)
{
OpType=1
Op1=64
link(onResult,9765789:doOperation,[])
link(Op2,8496209:Op2,[(90,52)(27,52)])
}
Add(FT_Math,9765789,126,84)
{
OpType=2
Op2=2
link(onResult,3241365:doCompare,[])
}
Add(FT_If_else,3241365,175,84)
{
Type=1
link(onTrue,13063662:doCompare,[])
link(Op2,8496209:Op21,[(188,52)(34,52)])
}
Add(FT_If_else,13063662,224,84)
{
Type=4
link(onTrue,8496209:onTrue,[(288,90)(288,27)])
link(Op2,8496209:Op22,[(237,52)(41,52)])
}
END_SDK
END_SDK
Add(LineBreakEx,6858062,889,178)
{
Caption="TestString"
Type=2
}
Add(Hub,11019750,140,156)
{
link(onEvent1,3845777:doFor,[(168,162)(168,111)])
link(onEvent2,12758910:doRandomize,[(262,169)(262,216)])
}
Add(Random,12758910,371,203)
{
Max=1
link(onRandom,15460113:doRandom,[])
}
Add(Random,15460113,424,203)
{
Max=1
link(onRandom,4192049:doOperation,[(468,209)(468,244)(391,244)(391,279)])
}
Add(FTCG_Tools,4192049,403,273)
{
link(Op1,12758910:Random,[(409,254)(377,254)])
link(Op2,15460113:Random,[(416,254)(430,254)])
link(onEventData,14621544:doWork2,[(725,279)(725,265)])
}
BEGIN_SDK
Add(EditMultiEx,12887389,21,21)
{
WorkCount=#11:doOperation|6:doData|7:doClear|
EventCount=#11:onEventData|
DataCount=#3:Op1|3:Op2|
link(doOperation,8257617:doOperation,[(33,27)(33,78)])
link(doData,2638903:doData,[(124,34)(124,142)])
link(doClear,9338249:doClear,[(124,41)(124,92)])
}
Add(FT_If_else,565939,101,72)
{
Op1=String(0)
link(onTrue,15973863:doData,[(146,78)(146,43)])
link(onFalse,5844991:doData,[(145,85)(145,113)])
}
Add(FT_DoData,15973863,157,37)
{
Data=String(1)
link(onEventData,11291864:doWork1,[(203,43)])
}
Add(FT_DoData,5844991,157,107)
{
Data=String(-1)
link(onEventData,11291864:doWork2,[(203,113)(203,85)])
}
Add(HubEx,11291864,199,79)
{
link(onEvent,9338249:doOperation,[])
}
Add(FT_Math,8257617,45,72)
{
OpType=6
link(onResult,565939:doCompare,[])
link(Op1,12887389:Op1,[(51,46)(27,46)])
link(Op2,12887389:Op2,[(58,46)(34,46)])
}
Add(FT_Math,9338249,227,79)
{
link(Op1,13469925:Var1,[(233,67)(221,67)(221,123)])
}
Add(FT_DoData,2638903,227,136)
{
link(onEventData,12887389:onEventData,[(290,142)(290,27)])
link(Data,13469925:Var2,[])
}
Add(GetDataEx,13469925,227,118)
{
link(Data,9338249:Result,[])
}
END_SDK
Add(For,8723035,280,235)
{
Start=1
link(onEvent,12758910:doRandom,[(357,241)(357,209)])
link(onStop,4192049:doData,[(358,248)(358,286)])
link(End,8472275:Var2,[(293,150)(521,150)])
}
Add(LineBreak,1546097,308,287)
{
link(Out,4192049:doClear,[])
Primary=[13259424,105,-154]
}


карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#23: 2010-12-20 14:28:28 ЛС | профиль | цитата
301992, может ты, все же, переведешь схему на нормальный интерфейс
карма: 22

0
Ответов: 96
Рейтинг: 1
#24: 2010-12-20 14:52:21 ЛС | профиль | цитата
Вот так пойдет?
code_21869.txt
карма: 0

0
файлы: 1code_21869.txt [5.9KB] [112]
Гость
Ответов: 17029
Рейтинг: 0
#25: 2010-12-20 15:10:15 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-21 13:10:06
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#26: 2010-12-20 15:16:07 ЛС | профиль | цитата
г. Гость писал(а):
а данные были бы видимы, в ListBox отображались, к примеру

Совершенно верно.
карма: 22

0
Ответов: 96
Рейтинг: 1
#27: 2010-12-20 15:37:08 ЛС | профиль | цитата
Извиняюсь
code_21871.txt
------------ Дoбавленo в 15.37:
только отображение в ListBox уменьшает скорость программы
карма: 0

0
файлы: 1code_21871.txt [6KB] [117]
Ответов: 758
Рейтинг: 112
#28: 2010-12-20 15:50:44 ЛС | профиль | цитата
301992, а какая логика или математика этой программы
и что на выходе должно быть
карма: 1

0
Ответов: 1376
Рейтинг: 198
#29: 2010-12-20 15:52:35 ЛС | профиль | цитата
301992 писал(а):
только отображение в ListBox уменьшает скорость программы

Ну и пусть уменьшает, версия же не окончательная, вот как добьёшься необходимой скорости, вот тогда и делай её фоновой.
карма: 1

0
Ответов: 96
Рейтинг: 1
#30: 2010-12-20 16:20:14 ЛС | профиль | цитата
на данном этапе это все, что я смог сделать для увеличения скорости. Наверное если ряд функций написать на IC, то можно еще увеличить скорость, но это не в моих силах. Хочу спросить, а если программа будет работать из под ДОСА, это наверное еще придаст ей скорости? И можно сделать в Hiasm программы под ДОС и как их запускать?
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)