Pull to refresh
-16
0.3
Сергей @kovserg

Инженер

Send message

Интересно чем закончится эксперимент. Морская вода довольно агрессивная среда, плюс всякие отложения, взвеси и живые организмы. Так что срок службы скорее всего в 50-60 лет выбран чтобы показать красивые цифры. Более того тепло которые будут выделять эти конденсаторы (кпд75% остальное в тепло) будет создавать конвективные потоки и если таких сфер будет много то интересно как эти тёплые течения повлияют на местную флору и фауну. Так что экологичность тоже еще надо доказать.
Да и в случае аварии обслуживать эту установку на глубине 600-800 метров то еще удовольствие, что может значительно увеличить стоимось хранения.

Минпросвещения России считает

А что это за министерство и кто ему подчиняется? Сколько денег оно выделило на пересмотр скорости wifi?

2019 года идёт работа по созданию цифровой образовательной среды

Что было сделано за эти годы и как это повлияло на уровень образования?

У вас какие-то странные тесты и графики: 32bit/1ns=3.7Gb/s 64bit/0.5ns=15Gb/s. Да и методика тоже.
Если хотите истощить кэш, то надо создать массив указателей которые указывает на следуюй элемент, перемешать и щемиться по нему:

void test(void* p) { while(p) p=*(void**)p; }

Такой тест не даст расслабиться ни кэшу ни банкам в dram. И покажет поряда 0.1Gb/s при пропускной способности в ~70Gb/s при последовательном доступе.

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

Это коэфициэнты полинома p(q)
p(q) = sum( M(a,n)*q^n , n=0..inf ) = sum( q^(k1+k2+..+ka) / (1-q^k1)^2 / (1-q^k2)^2 / ... / (1-q^ka)^2 , 1<=k1<=k2<=...<=ka )

sum( M1(n)*x^n ) = sum( x^k / (1-x^k)^2, k>=1 )
sum( M2(n)*x^n ) = sum( x^(k1+k2) / (1-x^k1)^2 / (1-x^k2)^2, 1<=k1<=k2 )
sum( M3(n)*x^n ) = sum( x^(k1+k2+k3) / (1-x^k1)^2 / (1-x^k2)^2 / (1-x^k3)^2, 1<=k1<=k2<=k3 )

M(a,n) = sum( d1 * d2 * ... * dk, { 0<m1<m2<...<mk, n=m1 * d1+m2 * d2+...+mk * dk } )

Если n кубиков разместить строчками, так что бы в следующей было не меньше чем в предыдущей. Это сумма по всем возможным таким представлениям, произведения высот одинаковых строчек при условии что таких блоков k штук.

n=17 k=3

##### 2
#####
##
##    3
##
#     1

три блока высоты 2, 3, 1 произведение высот 2*3*1

https://arxiv.org/pdf/2412.19180

Как вы считаете, какой тренд в UI-дизайне будет следующим?

Samsung's virtual assistant "Sam"

Кто же такой цифровой двойник

Цифровой двойник - это красивый маркетинговый термин для математической модели. Только тут стараются все расчеты свалить на нейросеть, авось прокатит (а если нет то надо больше данных). Как и любая мат.модель она может иметь разную точность: от сферического коня в ваккуме до более сложных инженерных моделей с кучей допущений и экспериментальных зависимостей с погрешностями в 20%. Но в любом случае есть область применения, разная точность и разные уровни детализации. Но в рекламных целях всегда говорят что она полностью на 146% описывает реальный объёкт и учитывает все физические процессы и т.п. Что обычно далеко от правды. Ибо всё учесть невозможно. Зато обязательно должна быть карсивая визуализация а лучше VR и AR так выше продажи.

Система многократно проигрывает различные сценарии, чтобы понять, насколько совместимы реальные люди. Если цифровые аватары 998 раз из 1000 выбирают...

Это называется метод Монте-Карло. Он прост и способен пожирать любые вычислительные ресурсы, так как сходимость у него так себе. При увеличении выборки в 100 раз точность увеличивается только в 10.

Что изменит отрасль

У нас же капитализм. Так что отрасль изменит срок окупаемости и дешевый кредит под это дело.
Да еще всякие международные ограничения которые помимо санкций вставляют палки в колёса, типа проекта чистый воздух. Что там с цифровым двойником этих явлений?

А что мешало просто повернуть комплексную переменную, так что бы φ0 стало равным 0 ?

А какая разница есть апаратная реализация или нет. Использовать большую разрядность никто не запрещает. Даже если компилятор умеет auto, но вдруг почему-то не умеет uint64_t, то разве это может остановить?
Ведь c++ универсальный язык и не запрещает реализовывать всё что хочется:

ext::div
namespace ext {
	typedef ptrdiff_t aint;
	template<aint n> void ld0(uint32_t (&r)[n]) { for(aint k=0;k<n;k++) r[k]=0; }
	template<aint n> void mov(uint32_t (&r)[n],uint32_t (&a)[n]) { for(aint k=0;k<n;k++) r[k]=a[k]; }
	template<aint n> void dec(uint32_t (&r)[n],uint32_t (&a)[n]) { char c=0; for(aint k=0;k<n;k++) { uint32_t p=r[k]-a[k]; if (c) c=--p>=r[k]; else c=p>r[k]; r[k]=p; } }
	template<aint n> void shl(uint32_t (&r)[n],aint s=1) {
		if (s<=0) { return; } aint m=s>>5; s&=31;
		if (m>0) { for(aint k=n-1;k>=m;--k) r[k]=r[k-m]; for(aint k=0;k<m;k++) r[k]=0; }
	 	if (s>0) { m++; for(aint k=n-1;k>=m;--k) r[k]=(r[k]<<s)|(r[k-1]>>(32-s)); r[0]<<=s; }
	}
	template<aint n> void shr(uint32_t (&r)[n]) { for(aint k=0;k<n-1;k++) r[k]=(r[k]>>1)|(r[k+1]<<31); r[n-1]>>=1; }
	template<aint n> void setbit(uint32_t (&r)[n],aint k) { if (k>=0 || k<n*32) { aint m=k>>5; k&=31; r[m]|=1<<k; } }
	template<aint n> int  cmp(uint32_t (&a)[n],uint32_t (&b)[n]) { for(aint k=n-1;k>=0;--k) if (a[k]!=b[k]) return a[k]<b[k] ? -1 : 1; return 0; }
	template<aint n> bool is0(uint32_t (&a)[n]) { for(aint k=0;k<n;k++) if (a[k]) return false; return true; }
	static inline int lzbc(uint32_t x) {
		if (x==0) return 32; //           0 1 2 3 4 5 6 7 8 9 A B C D E F
		int r=0; static const int t[16]={ 4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0 };
		if (x&0xFFFF0000) x>>=16; else r+=16;
		if (x&0xFF00) x>>=8; else r+=8;
		if (x&0xF0) x>>=4; else r+=4;
		return r+t[x];
	}
	template<aint n> aint lzbc(uint32_t (&a)[n]) { aint r=0; for(aint k=n-1;k>=0;--k) { int z=lzbc(a[k]); r+=z; if (z!=32) break; } return r; }
	template<aint n> int  div(uint32_t (&d)[n],uint32_t (&r)[n],uint32_t (&a)[n],uint32_t (&b)[n]) {
		ld0(d); mov(r,a); if (is0(b)) return 1;
		aint s=lzbc(b)-lzbc(a); if (s<0 || cmp(a,b)<0) return 0;
		uint32_t w[n]; mov(w,b); shl(w,s);
		while(s>=0) { if (cmp(r,w)>=0) { setbit(d,s); dec(r,w); } shr(w); s--; }
		return 0;
	}
} // namespace ext
uint32_t naive_average_0(const vector<uint32_t>& nums) {
    uint64_t sum = 0;
    for (const auto& x : nums) sum += x;
    return sum / nums.size();
}

uint32_t naive_average_1(const vector<uint32_t>& nums) {
	uint32_t s[2]={0,0}, d[2], r[2], p;
	for(const auto& x : nums) { p=s[0]; s[0]+=x; s[1]+=s[0]<p; }
	uint32_t n[2]={ (uint32_t)nums.size(),(uint32_t)((nums.size()>>16)>>16) };
	ext::div(d,r,s,n); return d[0];
}

uint32_t naive_average_2(const vector<uint32_t>& nums,bool round=false) {
	uint32_t p,s[2]={0,0}, n=(uint32_t)nums.size();
	for (const auto& x : nums) { p=s[0]; s[0]+=x; s[1]+=s[0]<p; }
	if (s[1]) {
		uint32_t r1=s[1], r2=0; 
		for(int i=0;i<32;i++) { r1<<=1; r2<<=1; if (r1>=n) { r2++; r1-=n; } }
		p=s[0]; s[0]+=r1; if (s[0]<p) { r2++; s[0]-=n; }
		if (round) { p=s[0]; s[0]+=n/2; if (s[0]<p) { r2++; s[0]-=n; } }
		return r2+s[0]/n;
	}
	return n ? s[0]/n : 0;
}

А кто мешает использовать для суммы большую разрядность?

uint32_t naive_average(const vector<uint32_t>& nums) {
    uint64_t sum = 0;
    for (const auto& x : nums) sum += x;
    return sum / nums.size();
}

Вся проблема в том что вы хотите использовать выражения для вычислений. А ведь можно просто разбить выражение на функции и обернуть их в функцию и её уже использовать по месту. Примерно так:

new: float result = a[>i] * b[>i];
old: float result = smul(a,b);

new: a[>i] = i * i;
old: for(auto i:index(a)) a[i]=i*i;

new: a[>] = 0;
old: load(a,0);

new: result[>i] = a[i] * b[i];
old: mul(r,a,b);

new: a[>i] = a[<i];
old: reverse(a);

и не понадобиться изобретать инопланетный синтаксис к уже существующему.

Не получится объявить шаблонные функции в .h, а определения давать в .cpp. Такой код просто откажется компилироваться.

Вобще если сильно хочется то можно.

// h
template<class T> void fn(T t) { void _fn(T t); _fn(t); }

// cpp
void _fn(int) {}
void _fn(double) {}

ps: кстати все <> скобки в примерах были конфискованы, сделав код слегка криповым.

А что мешает использовать анонимные функции для подобных операций?

struct eab_t { int i,j,k,v; };
template<class F> void eab(F f) {
	f({0,1,2, 1});
	f({1,0,2,-1});
	f({1,2,0, 1});
	f({2,1,0,-1});
	f({2,0,1, 1});
	f({0,2,1,-1});
}
...
	double r[3],a[3],b[3];
	eab([&](eab_t e){ r[e.i]=e.v*a[e.j]*b[e.k]; });

Нет. Я имею ввиду не то что должно быть, а то что у вас в коде: https://play.rust-lang.org?gist=973f4b0406466ea4839a25ba834bf134
Вы вместо бесконечности вводите точку (-1,-1), не принадлежащую кривой, а потом её игнорируете. В результате получается хрень.

Пусть Z = a + c
что у вас получиться если сложить Z+c ? или Z+Z ?

Язык который не позволяет сделать простые вещи просто - тупиковая ветвь. Но это видимо не очевидно. Раст яркий пример когда взяв всего один приём пытаются им решить все вопросы, но при этом создают проблемы с которыми придётся иметь дело позже. И если "в системе типов есть всё" есть много желающих запихать туда еще больше. В результате распухание сложности гарантировано. При этом вообще-то никак не решена проблема разрастания зависимостей. Зато надо следить за большим количеством сущностей.

https://youtu.be/bKyxOaP-mDg?t=3120

Обычно в микроконтроллере еще бит защиты установлен, который не позволяет прочитать прошивку, преодоление этого барьера тоже интересный квест.

изучайте чужие прошивки только если вы имеете на это право

Вы лично подписывали какие-то соглашения отбирающие у вас это право? (Если да то в замен на что?)

Создать разработчика, который является архитектором и оптимизатором сложных систем, способным эффективно использовать ИИ как мощный инструмент, но не зависящим от него для критических инженерных решений

Зачем? Что бы что?

работать в симбиозе с искусственным интеллектом

Биороботы это коченчто здорово, но конечная цель какая?

1
23 ...

Information

Rating
3,576-th
Location
Калужская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect
Senior
From 750,000 ₽
Linux
C++
PHP
Java
Docker
SQL
Hibernate
Java Spring Framework
High-loaded systems