ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 11.04.2008, 21:05
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Как я понял, Jes предложил что-то типа некоторого развлечения по поводу оптимизации кода.

Предлагаю простую задачку:
Код:
var
  p, i, n: integer;
...
p := 1;
n := 1000000000;
for i := 1 to n do
  p := (p * 11856) mod 1743;
write(p);
Цель - сделать это же за O(log(n))
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #22  
Старый 11.04.2008, 22:27
Аватар для KindEcstasy
KindEcstasy
Участник форума
Регистрация: 30.09.2006
Сообщений: 134
Провел на форуме:
352963

Репутация: 197
Отправить сообщение для KindEcstasy с помощью ICQ
По умолчанию

Как понять за O?
 
Ответить с цитированием

  #23  
Старый 11.04.2008, 22:44
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от KindEcstasy  
Как понять за O?
за O(f(n)) - Это значит совершить порядка f(n) операций.
То есть, тот код, что я привёл работает за O(n).

К примеру, матрица n*n полностью заполняется за O(n^2)

PS Даже если количество операций типа n*n*n*0.0001 + 0.0007*n*n + 1000*n - 50000*lg(n), то это всё равно O(n^3)
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #24  
Старый 12.04.2008, 01:42
Аватар для ZaCo
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

2desTiny бля, код оптимизировать - это надо тупо знать какие операторы/инструкции чем лучше заменять, вообще говоря оптимизировать код можно програмно. на это способен и gcc и vc и intel'овский компилятор. на программиста должна ложиться по большей части задача оптимизации алгоритма и на самом деле все.. тк все остальное даст лишь сомнительный прирост производительности. личный опыт.

зы пример что ты дал слава богу хоть как-то на это похож. для новичков - http://algolist.manual.ru/maths/count_fast/fast_exp.php :

Код:
long powmod(long a, long k, long n)
{
  long b=1;

  while (k) {
    if (k%2==0) {
      k /= 2;
      a = (a*a)%n;
      }
    else {
      k--;
      b = (b*a)%n; 
      }
  }
  return b;
}

int main()
{
 return powmod(11856, n, 1743);
}
 
Ответить с цитированием

  #25  
Старый 12.04.2008, 12:22
Аватар для KSoniX
KSoniX
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме:
314553

Репутация: 38
Отправить сообщение для KSoniX с помощью ICQ
Post

я все нашел функцию WideCharToMultiByte() если у каго есть еше варианты давайте

Последний раз редактировалось KSoniX; 17.04.2008 в 11:05..
 
Ответить с цитированием

  #26  
Старый 12.04.2008, 12:57
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
void CString2Char(CString src,char* ch)
Стандартный метод GetBuffer(0) отлично пашет. Нечего придумывать
 
Ответить с цитированием

  #27  
Старый 12.04.2008, 14:00
Аватар для KSoniX
KSoniX
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме:
314553

Репутация: 38
Отправить сообщение для KSoniX с помощью ICQ
По умолчанию

nerezus GetBuffer(0) возвращает TCHAR а мне нужна ЧАР
а если я в функции вместо CString поставлю TCHAR
Цитата:
void CString2Char(TCHAR *src,char* ch)
//и
//.........................
for(i=0;i<wcslen(src);i++)
//...............................
вот с этим как?

Последний раз редактировалось KSoniX; 12.04.2008 в 14:22..
 
Ответить с цитированием

  #28  
Старый 14.04.2008, 15:43
Аватар для KSoniX
KSoniX
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме:
314553

Репутация: 38
Отправить сообщение для KSoniX с помощью ICQ
По умолчанию

вот кусок года здес у меня ест 2 edit box в одном логин в другом пасс. я логин и пасс шифрую и записываю в файл но мой шифровальный алгоритм работает с char`ми и я с TCHAR в char конвертирую с помощью функции указанный чуть выше и я шифрую функций fmt_base64() ниже функция шифрования у меня все работает нормальна
Цитата:
//...................

CString logBuff,passBuff;
CEdit* Log;
CEdit* Pass;
char *buffer,buf,*userpass;

Log = (CEdit*)GetDlgItem(IDC_EDIT1);
Pass = (CEdit*)GetDlgItem(IDC_EDIT2);
Log->GetWindowTextW(logBuff);
Pass->GetWindowTextW(passBuff);


if(wcslen(logBuff)!=0)
{
logBuff+=':'+passBuff;
int len =logBuff.GetLength()+2;
buffer=(char*)malloc(len);
WideCharToMultiByte(CP_ACP,WC_NO_BEST_FIT_CHARS,lo gBuff,50,buffer,50,NULL,NULL);

//...................................
функция шифрование

Цитата:

unsigned int fmt_base64(char *dest, const char *src, unsigned int len)
{
unsigned short bits = 0,temp = 0;
unsigned long written = 0;
unsigned int i;
const char base64[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz0123456789+/=";


for(i = 0; i < len; i++) {
temp <<= 8;
temp += src[i];
bits += 8;
while(bits > 6) {
dest[written] = base64[((temp >> (bits - 6)) & 63)];
written++;
bits -= 6;
}
}

if(bits) {
temp <<= (6 - bits);
dest[written] = base64[temp & 63];
written++;
}

while(written & 3) {
dest[written] = '=';
written++;
}

return written;
}

Последний раз редактировалось KSoniX; 17.04.2008 в 11:10..
 
Ответить с цитированием

  #29  
Старый 15.04.2008, 07:14
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
nerezus GetBuffer(0) возвращает TCHAR а мне нужна ЧАР
В настройках проекта укажи кодировку "not using", не поможет?)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация изображений под поисковые системы baltazar Статьи 0 24.03.2008 13:28
Оптимизация загрузки страниц PandoraBox PHP, PERL, MySQL, JavaScript 0 02.02.2008 02:44
Секреты Gsm КероСиН Сотовый фрикинг 17 30.08.2007 21:01
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
Внедрение Sql кода с завязанными глазами, часть 2 k00p3r Чужие Статьи 0 12.06.2005 20:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ