Android на камерах видео наблюдений не нужен, почти у всех стоит Linux(uclinux) + соответствующий стек программного обеспечения. Например, поддержка протоколов стандарта onvif и так далее.
Алгоритм победителя использует метод блочного решета эратосфена с предподсчётом на 64 значения. фактически, чем больше заранее рассчитанная таблица, тем меньшего, в среднем, размера блок элементов придётся проходить и тем быстрее будет работать реализация. Предподсчёт на 64 элемента, в среднем, ускоряет блочный алгоритм рассчёта в 128(или всё же в 64?) раз(а) относительно блочного решета без предподсчёта. Вся сила решения — в умении упаковать таблицу заранее просчитанных значений вместе с кодом распаковки и досчёта в 1к исходного кода.
например, простое блочное решето эратосфена, которое я отправил на конкурс:
блочное решето
#define PM (1 << 16)
#define CZ (1 << 16)
char c[CZ + 1];
int pp[PM + 1];
char v[PM + 1];
int pc = 0;
int64_t prime_r(int n)
{
// first primes
pc = 0;
memset(pp,0x00, PM*sizeof(int));
memset(v,0xff, PM*sizeof(char));
for(int i = 2; i*i < PM; i++) if(v[i])for(int j = i*i; j < PM; j += i)v[j] = 0;
for(int i = 2; i < PM; i++)if(v[i]) pp[pc++] = i;
// sum of prime
int64_t sum = 0;
for(int64_t i = 0; pp[i] <= n && i < pc; i++)sum += pp[i];
for (int64_t ii = pp[pc - 1]; ii <= n; ii += CZ)
{
memset(c,0xff, CZ*sizeof(char));
for(int64_t i = 0; i < pc; i++)
{
int h = ii % pp[i];
int j = (h > 0) ? pp[i] - h: 0;
for(; j < CZ; j += pp[i]) c[j] = 0;
}
int64_t si = ((ii + CZ) >= n) ? n - ii : CZ;
for(int64_t i = 0; i < si; i+=2) if(c[i]) sum += (i + ii);
}
return sum;
}
оно же, с таблицей предподсчёта на 16 элементов, которое я так и не отправил:
блочное решето с предподсчётом на 16 субблоков
#define PM (1 << 16)
#define CZ (1 << 16)
char c[CZ + 1];
int pp[PM + 1];
char v[PM + 1];
int pc = 0;
int64_t cum_16 [16] = {
0,
0x1c20fef2f09ca,
0x6c63d57586d96,
0xeec0010744a8e,
0x1a233866cf59db,
0x28618ac5327caa,
0x399e13d0ec9c4e,
0x4dd275b39fbecc,
0x64fa7e62f08931,
0x7f0f2d33432004,
0x9c0f0b992adb2e,
0xbbf49b7cf3b1fe,
0xdebe8bda61ec0f,
0x10467f40dc3f52f,
0x12ceee2b93e7816,
0x158524685365cc7
};
int64_t prime_rr16(int n)
{
// first primes
pc = 0;
memset(pp,0x00, PM*sizeof(int));
memset(v,0xff, PM*sizeof(char));
for(int64_t i = 2; i*i < PM; i++) if(v[i])for(int64_t j = i*i; j < PM; j += i)v[j] = 0;
for(int64_t i = 2; i < PM; i++)if(v[i]) pp[pc++] = i;
// sum of prime
int64_t sum = 0;
for(int64_t i = 0; pp[i] <= n && i < pc; i++)sum += pp[i];
int64_t s = (n >> 27)? (n & 0xf8000000) + 1 : pp[pc-1];
if(n >> 27) sum = 0;
sum += cum_16[n >> 27];
for (int64_t ii = s; ii <= n; ii += CZ)
{
memset(c,0xff, CZ*sizeof(char));
for(int64_t i = 0; i < pc; i++)
{
int64_t h = ii % pp[i];
int64_t j = (h > 0) ? pp[i] - h: 0;
for(; j < CZ; j += pp[i]) c[j] = 0;
}
int64_t si = ((ii + CZ) >= n) ? n - ii : CZ;
for(int64_t i = 0; i < si; i+=2) if(c[i]) sum += (i + ii);
}
return sum;
}
Простое блочное решето, отправленное на конкурс, позволило занять 14 место. Версия с предподсчётом у меня работает, в худшем случае, ~17 раз быстрее. Что дало бы, примерно, 0,2 секунды и 7-5 место. Добавление таблицы предпросчёта до 64 значений даёт прирост примерно в 5-6 раз, что даёт примерно 0,04 — 0,034 секунды, а именно, результат победителей.
написал так:
1) считаем простые числа в диапазоне от 1 до sqrt(n)
2) так как чисел всего 2^31, определяет рабочий интервал, для которого уже просчитана сумма чисел в предыдущем интервале. интервалов 16, в среднем надо просчитать от начала интервала до его середины. итого 1/32
3) считаем сумму оставшихся простых чисел в рабочем интервале, блочным решетом эратосфена с примитивными оптимизациями чётных значений.
блочное решето с примитивными оптимизациями работает на значениях 2^29 около 0,5 секунд. С предпросчётом от 0,01 до 0,05
Вы всерьёз думаете, что царь-батюшка не в курсе и если ему всю правду как на духу выложить, он внемлет голосу разума, образумится, а не продолжит развивать православные нанотехнологии?
Людям нужна возможность скачать необходимую им информацию или рейтинг? Открытые трекеры, магнет ссылки показывают, что рейтинг вторичная вещь, без которой можно жить… он был необходим, чтобы дисциплинировать и привить определённую культуру. рейтинг не самоцель, он лишь средство достижения поставленной цели. свободного обмена информацией. Когда средство достижение цели становится самой целью, от него надо избавляться. как бы грустно это не было…
В битве меча и щита (технологиях защиты программного обеспечения и технологиях обхода и взлома) потерпевшими оказываются обыватели (конечные пользователи как лицензионных, так и не лицензионных копий продукта ). старо как мир предание, но верится с трудом…
Человек — это часть целого, которое мы называем Вселенной,
часть, ограниченная во времени и в пространстве.
Он ощущает себя, свои мысли и чувства как нечто отдельное от всего остального мира, что является своего рода оптическим обманом.
Эта иллюзия стала темницей для нас, ограничивающей нас миром собственных желаний и привязанностью к узкому кругу близких нам людей. Наша задача – освободиться из этой тюрьмы, расширив сферу своего учас-
тия до всякого живого существа, до целого мира, во всем его великоле-
пии. Никто не сможет выполнить такую задачу до конца, но уже сами попытки достичь эту цель являются частью освобождения и основанием для внутренней уверенности.
из книги «The Merging of Spirit and Science» by A.Einstein
Windows Mobile тем была и ценна(лично для меня), что под неё существует множество нативных приложений, что обеспечивало широкие возможности для кастомизации и расширяемости. Убирая эту возможность, им надо привнести что-то равноценное взамен. А то смартфоны по производительности сравниваются с ноутбуками 8 летней давности и уже обзаводятся даже HDMI выходом, не считая прочих полезных и не очень плюшек. Вроде бы наоборот, области применения должны шириться и шириться, а тут как-то непонятно, мало функциональный товар массовым и успешным бывает редко…
Вы по критериям NIST гоняли? Интересно, что было использовано в качестве источника энтропии, а так же, для чего использовался куб. Если не затруднит, не можете кратко описать алгоритм)
Простите, может кто ответить, что выступает источником энтропии в данном ГСЧ? он не ГПСЧ, а именно ГСЧ? Ну или сорцы показать, раз на замену /dev/random
Если смотреть на телефон как на средство коммуникации, то wPhone 7 органично решает сию задачу. Подход — один контакт и все ассоциированные с ним способы связи не лишён изящества. Насчёт остального не уверен, но основные задачи — связь и информационные сервис вроде решает. да пребудет с ними сила, здоровая конкуренция пойдёт всем на благо.
например, простое блочное решето эратосфена, которое я отправил на конкурс:
оно же, с таблицей предподсчёта на 16 элементов, которое я так и не отправил:
Простое блочное решето, отправленное на конкурс, позволило занять 14 место. Версия с предподсчётом у меня работает, в худшем случае, ~17 раз быстрее. Что дало бы, примерно, 0,2 секунды и 7-5 место. Добавление таблицы предпросчёта до 64 значений даёт прирост примерно в 5-6 раз, что даёт примерно 0,04 — 0,034 секунды, а именно, результат победителей.
1) считаем простые числа в диапазоне от 1 до sqrt(n)
2) так как чисел всего 2^31, определяет рабочий интервал, для которого уже просчитана сумма чисел в предыдущем интервале. интервалов 16, в среднем надо просчитать от начала интервала до его середины. итого 1/32
3) считаем сумму оставшихся простых чисел в рабочем интервале, блочным решетом эратосфена с примитивными оптимизациями чётных значений.
блочное решето с примитивными оптимизациями работает на значениях 2^29 около 0,5 секунд. С предпросчётом от 0,01 до 0,05
часть, ограниченная во времени и в пространстве.
Он ощущает себя, свои мысли и чувства как нечто отдельное от всего остального мира, что является своего рода оптическим обманом.
Эта иллюзия стала темницей для нас, ограничивающей нас миром собственных желаний и привязанностью к узкому кругу близких нам людей. Наша задача – освободиться из этой тюрьмы, расширив сферу своего учас-
тия до всякого живого существа, до целого мира, во всем его великоле-
пии. Никто не сможет выполнить такую задачу до конца, но уже сами попытки достичь эту цель являются частью освобождения и основанием для внутренней уверенности.
из книги «The Merging of Spirit and Science» by A.Einstein