messenger 1 2 мая Опубликовано 2 мая · Жалоба Подскажите, как бы вы решили задачку. Дано: 6 резисторов номиналами 1-2-4-6-8-10 кОм. Резисторы соединены параллельно через ключи. Как найти "быстро " все возможные номиналы общего сопротивления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewkrot 0 2 мая Опубликовано 2 мая · Жалоба Я бы быстро написал программу) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 2 мая Опубликовано 2 мая · Жалоба r=[1 2 4 6 8 10]; i=de2bi(1:63); R=i*r.'; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 13 2 мая Опубликовано 2 мая · Жалоба В 02.05.2024 в 22:49, thermit сказал: R=i*r.'; R = 1./sum(repmat(1./r,63,1).*i,2) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
тау 30 2 мая Опубликовано 2 мая · Жалоба 1 час назад, messenger сказал: как бы вы решили задачку. я бы нашел магические числа степеней 2-ки, их 4 шт. 2^4 всего то 16 значений линейно нарастающей проводимости. к этим 16 значениям дописываем строку еще из 16 увеличенных на 1/6 (0,166666) значений и еще строку увеличенных на 1/10=0,1 ну и последнюю строку увеличенных на 0,266666 Всего 4 строки по 16 чисел. в самом конце брать обратные значения чтоб килоомы нарисовались. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 2 мая Опубликовано 2 мая · Жалоба 64 варианта. в экселе сначала копируем в 6 столбцов все проводимости. потом руками обнуляем перебирая двоичный код. в 7 столбце складываем сумму первых 6 столбцов. в 8 находим обратную величину - сопротивление. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 3 мая Опубликовано 3 мая · Жалоба 8 часов назад, Самурай сказал: R = 1./sum(repmat(1./r,63,1).*i,2) Да. Конечно через проводимости. Но думаю принцип понятен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
messenger 1 3 мая Опубликовано 3 мая · Жалоба 10 hours ago, firstvald said: 64 варианта. в экселе сначала копируем в 6 столбцов все проводимости. потом руками обнуляем перебирая двоичный код. в 7 столбце складываем сумму первых 6 столбцов. в 8 находим обратную величину - сопротивление. Мне этот вариант показался самым простым. Прав ли я? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 32 3 мая Опубликовано 3 мая · Жалоба On 5/3/2024 at 1:18 PM, messenger said: Мне этот вариант показался самым простым. Прав ли я? Нет, конечно.. :) Spoiler #include "stdafx.h" double R[] = {1.0,2.0,4.0,6.0,8.0,10.0}; int _tmain(int argc, _TCHAR* argv[]) { FILE *pFile; fopen_s(&pFile,"..\\Resist.txt","w+"); double Conduct,Resist; for (int i = 1; i < 64; i++) { Conduct = 0.0; for (int j = 0; j < 6; j++) if ((i >> j) & 1) Conduct += 1.0/R[j]; Resist = 1.0/Conduct; fprintf(pFile,"%g\n",Resist); } fclose(pFile); return 0; } Spoiler Quote 1 2 0.666667 4 0.8 1.33333 0.571429 6 0.857143 1.5 0.6 2.4 0.705882 1.09091 0.521739 8 0.888889 1.6 0.615385 2.66667 0.727273 1.14286 0.533333 3.42857 0.774194 1.26316 0.55814 1.84615 0.648649 0.96 0.489796 10 0.909091 1.66667 0.625 2.85714 0.740741 1.17647 0.540541 3.75 0.789474 1.30435 0.566038 1.93548 0.659341 0.983607 0.495868 4.44444 0.816327 1.37931 0.57971 2.10526 0.677966 1.02564 0.506329 2.55319 0.718563 1.1215 0.528634 1.55844 0.609137 0.875912 0.466926 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
тау 30 3 мая Опубликовано 3 мая · Жалоба 23 минуты назад, messenger сказал: Прав ли я? Перебирать руками двоичный код - не царское дело, к тому же долго. В экселе несколько раз протянуть мышкой с нажатым Ctrl. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 3 мая Опубликовано 3 мая · Жалоба 49 minutes ago, messenger said: Мне этот вариант показался самым простым. Прав ли я? да. никаких инструментов не надо. только половину часа посидеть. Проводимость Сопротивление 1 2 4 6 8 10 1 0.5 0.25 0.166667 0.125 0.1 # 0 0 0 0 0 0 0 0 #ДЕЛ/0! 1 1 0 0 0 0 0 1 1 2 0 0.5 0 0 0 0 0.5 2 3 1 0.5 0 0 0 0 1.5 0.666666667 4 0 0 0.25 0 0 0 0.25 4 5 1 0 0.25 0 0 0 1.25 0.8 6 0 0.5 0.25 0 0 0 0.75 1.333333333 7 1 0.5 0.25 0 0 0 1.75 0.571428571 63 1 0.5 0.25 0.166667 0.125 0.1 2.041667 0.489795838 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 3 мая Опубликовано 3 мая · Жалоба dac.xls Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
тау 30 3 мая Опубликовано 3 мая · Жалоба 8 часов назад, firstvald сказал: только половину часа посидеть а может ему В 02.05.2024 в 22:43, messenger сказал: Как найти "быстро " все надо быстрее , например секунд за 50 20240503_224151.mp4 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
messenger 1 4 мая Опубликовано 4 мая · Жалоба Большое Всем спасибо! Уже пишу код с этими расчетами. Мне понравилось по старинке через двоичный код. Как раз будет два массива, один в виде 0b другой с соответствующими сопротивлениями. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться