IPB

Здравствуйте, гость ( Вход | Регистрация )

26 страниц V  « < 20 21 22 23 24 > »   
Reply to this topicStart new topic
> Языки программирования
Эроласт
сообщение 26 May 2011, 07:06
Сообщение #421

Зануда
Сообщений: 2 237
Спасибо сказали: 2894 раза




Да не знаю просто знаю что есть где-то wink.gif
Go to the top of the pageAdd Nick
 
+Quote Post
packa
сообщение 26 May 2011, 19:36
Сообщение #422

Immortal
Сообщений: 3 301
Спасибо сказали: 2643 раза




Хватить хренью маяться, делом уже займись.


--------------------
Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg
Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt

(ссылки содержат кириллические символы вместо оригинальных)

Видишь бяку, - упрости! (с) кто-то из выдающихся математиков)
Учи матан & Сходи с ума (с) архидедус
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 26 May 2011, 20:50
Сообщение #423

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Раз сплайсинг уже изучен, можно переходить к алгоритмам реализации нестационарного беспоискового корреляционного дискриминатора сдвига изображений.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 27 May 2011, 04:27
Сообщение #424

Зануда
Сообщений: 2 237
Спасибо сказали: 2894 раза




Сплайсинг-то не изучен, но я вообще не понял о чем идет речь... Я поолный чайник gigi.gif
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 27 May 2011, 07:58 (Сообщение отредактировал tolich - 27 May 2011, 08:15)
Сообщение #425

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Так Берс понял, что ты полный чайник и поставил тебя на огонь, теперь ждёт, когда ты закипишь. gigi.gif


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
ChASnock
сообщение 27 May 2011, 22:00
Сообщение #426

Geoff Snock | 茶スノック
Сообщений: 533
Спасибо сказали: 248 раз




Отличная шутка happy.gif

Нет, правда. smile.gif


--------------------
гномов сопротивляются заклинанию!

Цитата
Фейспалмы свои себе в сракотан засуньте, если больше сказать нечего.
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 28 May 2011, 07:09
Сообщение #427

Зануда
Сообщений: 2 237
Спасибо сказали: 2894 раза




Не, не получится мне закипеть, в меня бочку соли высыпали smile.gif
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 10:37 (Сообщение отредактировал tolich - 31 May 2011, 13:05)
Сообщение #428

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Программка для Microsoft C++, просеивает числа через решето Эратосфена.
CODE
#include <memory.h>
#include <stdio.h>

typedef unsigned int uint;
typedef unsigned char uchar;

struct set{
uchar *data;
bool testBit(uint i);
void setBit(uint i);
void fill(bool val);
set() { data=new uchar [0x20000000]; }
~set() { delete [] data; }
}
erathosphen;

void set::setBit(uint i)
{
data[i>>3] |= (1<<(i&7));
}

bool set::testBit(uint i)
{
return ((data[i>>3]>>(i&7))&1)==1;
}

void set::fill(bool val)
{
memset(data,val?255:0,sizeof data);
}

void filter(uint value)
{
if(erathosphen.testBit(value)) return;
printf("\r%u",value);
uint i=value*2;
while(i<=0x80000000) { erathosphen.setBit(i); i+=value; }
while(i> 0x80000000) { erathosphen.setBit(i); i+=value; }
}

int main()
{
erathosphen.fill(false);

erathosphen.setBit(0);
erathosphen.setBit(1);

filter(2); filter(3);
for(uint i=6; i<65536; i+=6){
filter(i-1); filter(i+1);
}

printf("\nWriting grid");
FILE *file=fopen("eragrid.bin","wb");
if ( file ) {
fwrite(erathosphen.data,1,0x20000000,file);
fclose(file);
}

printf("\nWriting primaries");
file=fopen("primary.bin","wb");
if ( file ) {
for(uint i=0; i<0xFFFFFFFE; ++i){
if(!erathosphen.testBit(i))
fwrite(&i,4,1,file);
}
fclose(file);
}

return 0;
}


Be warned!

Общий объём результирующих файлов приближается к полутора гигабайтам.



--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 31 May 2011, 12:56
Сообщение #429

Etoslozhnostatus
Сообщений: 8 575
Спасибо сказали: 15972 раза




1) Какого [censored] в теге кода отображаются смайлы!?
2)
Код
    for(uint i=0; i<0xFFFFFFFE; ++i){
      if(!erathosphen.testBit(i))
        fwrite(&i,4,1,file);
    }
Кошмар!


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 13:06
Сообщение #430

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Не волнуйся, начальная фильтрация всё равно дольше.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 31 May 2011, 13:08
Сообщение #431

Etoslozhnostatus
Сообщений: 8 575
Спасибо сказали: 15972 раза




Я заметил, но этот цикл впечатлил особо.


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 13:12
Сообщение #432

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




P.S. Смайлы поправил.

Цитата(etoprostoya @ 31 May 2011, 13:08) *
Я заметил, но этот цикл впечатлил особо.
А что в нём не так?


Конечно, можно было, например, обрабатывать байт целиком и писать до 4 простых чисел зараз, но, мне кажется, такое усложнение совершенно ни к чему для одноразовой задачи.

Можно было, кстати, вообще хранить только данные для чисел 6*i±1.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 31 May 2011, 13:13
Сообщение #433

Etoslozhnostatus
Сообщений: 8 575
Спасибо сказали: 15972 раза




Для меня это примерно как
Код
for(uint i=0; i; ++i)

бесконечный цикл с записью в файл. Да там вообще всё не так. Пример того, как не надо писать программы.


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 13:18
Сообщение #434

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Ты не прав, Борис, цикл не бесконечный. Даже если бы там стояло 0xFFFFFFFF, кстати. А всё потому, что шаг всего 1. Вот с фильтрацией пришлось поколдовать, ибо переполнение.

Цитата(etoprostoya @ 31 May 2011, 13:13) *
Для меня это примерно как
Код
for(uint i=0; i; ++i)

бесконечный цикл с записью в файл. Да там вообще всё не так. Пример того, как не надо писать программы.

Це ж не бесконечный. lupa.gif


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 31 May 2011, 14:00
Сообщение #435

Etoslozhnostatus
Сообщений: 8 575
Спасибо сказали: 15972 раза




Цитата(tolich @ 31 May 2011, 14:18) *
Ты не прав, Борис, цикл не бесконечный.

Цитата(tolich @ 31 May 2011, 14:18) *
Код
for(uint i=0; i; ++i)

Це ж не бесконечный. lupa.gif

Ну да, всего лишь 4 миллиарда прогона цикла gigi.gif
В каждом прогоне проверка, которая идёт не правильно, как ты и сказал, с переполнением 32-битного регистра.
В каждом втором, примерно, прогоне идёт запись в файл. Причём записывается информация из блоков памяти, чтение которых, как я понимаю, скорее всего будет невозможно в нормальной ОС.
Код
fwrite(&i,4,1,file)
При i=0 откуда будет читаться?


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 14:56
Сообщение #436

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Цитата(etoprostoya @ 31 May 2011, 14:00) *
Ну да, всего лишь 4 миллиарда прогона цикла gigi.gif
Ты так говоришь, как будто это что-то плохое.
Цитата(etoprostoya @ 31 May 2011, 14:00) *
В каждом прогоне проверка, которая идёт не правильно, как ты и сказал, с переполнением 32-битного регистра.
А где я сказал, что это неправильно? На самом деле, так задумано.
Цитата(etoprostoya @ 31 May 2011, 14:00) *
Причём записывается информация из блоков памяти, чтение которых, как я понимаю, скорее всего будет невозможно в нормальной ОС.
Тащемта, в файл записывается непосредственно значение i, все 4 байта.

Программа строит битовое множесто на 4294967296 элементов (которое хранится упакованным в байты по 8 bool-ов), в котором будут исключительно составные числа, методом "решета Эратосфена".
Потом записывает это множество на диск, а рядом записывает все числа, которые в это множество не входят.
Где ошибка? По-моему, всё правильно. Что самое забавно, программа работает, и файлы генерирует.

К слову:
Цитата(etoprostoya @ 31 May 2011, 14:00) *
в нормальной ОС
Это в какой именно?


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 31 May 2011, 16:34
Сообщение #437

Etoslozhnostatus
Сообщений: 8 575
Спасибо сказали: 15972 раза




>> Ты так говоришь, как будто это что-то плохое.
Ты так говоришь, как будто это нормально. К тому же я неуверен, что смогут записаться все те 4 миллиарда, а не 2Гб. Это зависит, конечно, от системы.

>> Тащемта, в файл записывается непосредственно значение i
Странно. Я это понимаю не так:
Код
uint i=0;
fwrite(&i,4,1,file) //fwrite(const void*p, size_t size,size_t n,FILE*f);

- неправильно
Код
uint i=0;
fwrite(&erathosphen.data[i],4,1,file);

- правильно

>> Это в какой именно?
В ОС, в которой можно читать не всё подряд, а только то, что можно с правами пользователя. Грубо говоря, в ОС с виртуализацией памяти, если я правильно выразился.


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 17:10
Сообщение #438

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Цитата(etoprostoya @ 31 May 2011, 16:34) *
Странно. Я это понимаю не так:
Код
uint i=0;
fwrite(&i,4,1,file) //fwrite(const void*p, size_t size,size_t n,FILE*f);

- неправильно
Код
uint i=0;
fwrite(&erathosphen.data[i],4,1,file);

- правильно

Неправильно понимаешь. В файл записывается значение, хранящееся в переменной i, именно для этого в fwrite передаётся её адрес и размер, а не фрагмент erathosphen.data.
Ещё раз: во второй файл записываются те и только те значения i, которые отсутствуют в множестве erathosphen. Размер primary.bin не 4Г, а всего-то 813120884 байт — всё-таки простые числа встречаются не часто.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 31 May 2011, 17:21
Сообщение #439

Etoslozhnostatus
Сообщений: 8 575
Спасибо сказали: 15972 раза




Понятно. Идиотизма Странностей в алгоритме стало чуть-чуть меньше. Но меня вы не заставите применять такую программу, даже если
Цитата
хранить только данные для чисел 6*i±1


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 31 May 2011, 19:42
Сообщение #440

😸🧡✊✌️
Сообщений: 16 410
Спасибо сказали: 3258 раз




Ну, если тебе внезапно понадобится решето Эратосфена, никто тебя не будет под пытками заставлять использовать мою программу. Ты вполне можешь придумать реализацию покрасивше.
К тому же, моя реализация очень ограничена — выдаёт простые числа только в пределах первых четырёх милливардов. В реальных приложениях (той же криптографии) частенько требуются простые числа куда как больше.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post

26 страниц V  « < 20 21 22 23 24 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16 August 2025 - 12:26
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика