messenger 1 May 2, 2024 Posted May 2, 2024 · Report post Подскажите, как бы вы решили задачку. Дано: 6 резисторов номиналами 1-2-4-6-8-10 кОм. Резисторы соединены параллельно через ключи. Как найти "быстро " все возможные номиналы общего сопротивления. Quote Share this post Link to post Share on other sites More sharing options...
andrewkrot 1 May 2, 2024 Posted May 2, 2024 · Report post Я бы быстро написал программу) Quote Share this post Link to post Share on other sites More sharing options...
thermit 5 May 2, 2024 Posted May 2, 2024 · Report post r=[1 2 4 6 8 10]; i=de2bi(1:63); R=i*r.'; Quote Share this post Link to post Share on other sites More sharing options...
Самурай 13 May 2, 2024 Posted May 2, 2024 · Report post В 02.05.2024 в 22:49, thermit сказал: R=i*r.'; R = 1./sum(repmat(1./r,63,1).*i,2) Quote Share this post Link to post Share on other sites More sharing options...
тау 66 May 2, 2024 Posted May 2, 2024 · Report post 1 час назад, messenger сказал: как бы вы решили задачку. я бы нашел магические числа степеней 2-ки, их 4 шт. 2^4 всего то 16 значений линейно нарастающей проводимости. к этим 16 значениям дописываем строку еще из 16 увеличенных на 1/6 (0,166666) значений и еще строку увеличенных на 1/10=0,1 ну и последнюю строку увеличенных на 0,266666 Всего 4 строки по 16 чисел. в самом конце брать обратные значения чтоб килоомы нарисовались. Quote Share this post Link to post Share on other sites More sharing options...
firstvald 47 May 2, 2024 Posted May 2, 2024 · Report post 64 варианта. в экселе сначала копируем в 6 столбцов все проводимости. потом руками обнуляем перебирая двоичный код. в 7 столбце складываем сумму первых 6 столбцов. в 8 находим обратную величину - сопротивление. 1 Quote Share this post Link to post Share on other sites More sharing options...
thermit 5 May 3, 2024 Posted May 3, 2024 · Report post 8 часов назад, Самурай сказал: R = 1./sum(repmat(1./r,63,1).*i,2) Да. Конечно через проводимости. Но думаю принцип понятен. Quote Share this post Link to post Share on other sites More sharing options...
messenger 1 May 3, 2024 Posted May 3, 2024 · Report post 10 hours ago, firstvald said: 64 варианта. в экселе сначала копируем в 6 столбцов все проводимости. потом руками обнуляем перебирая двоичный код. в 7 столбце складываем сумму первых 6 столбцов. в 8 находим обратную величину - сопротивление. Мне этот вариант показался самым простым. Прав ли я? Quote Share this post Link to post Share on other sites More sharing options...
blackfin 80 May 3, 2024 Posted May 3, 2024 · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
тау 66 May 3, 2024 Posted May 3, 2024 · Report post 23 минуты назад, messenger сказал: Прав ли я? Перебирать руками двоичный код - не царское дело, к тому же долго. В экселе несколько раз протянуть мышкой с нажатым Ctrl. Quote Share this post Link to post Share on other sites More sharing options...
firstvald 47 May 3, 2024 Posted May 3, 2024 · Report post 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 Quote Share this post Link to post Share on other sites More sharing options...
firstvald 47 May 3, 2024 Posted May 3, 2024 · Report post dac.xls Quote Share this post Link to post Share on other sites More sharing options...
тау 66 May 3, 2024 Posted May 3, 2024 · Report post 8 часов назад, firstvald сказал: только половину часа посидеть а может ему В 02.05.2024 в 22:43, messenger сказал: Как найти "быстро " все надо быстрее , например секунд за 50 20240503_224151.mp4 1 Quote Share this post Link to post Share on other sites More sharing options...
messenger 1 May 4, 2024 Posted May 4, 2024 · Report post Большое Всем спасибо! Уже пишу код с этими расчетами. Мне понравилось по старинке через двоичный код. Как раз будет два массива, один в виде 0b другой с соответствующими сопротивлениями. 1 Quote Share this post Link to post Share on other sites More sharing options...