Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: найти все делители в уравнении
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
sergey sva
Простое уравнение помогите посчитать
K1,K2 = 2:1:170;
xi = ((const/K1)-(const/K2));
Нужно найти все К1 К2 при которых будет максимальное количество совпадений x2=x25=x41... или название функции подскажите для матлаб эксель...
Herz
sergey sva, ну Вы же не новичок. Почему Вам приходится объяснять, что такое название темы неприемлемо? Переименуйте, пожалуйста.
И вопрос Ваш непонятен. Возможно, он связан предысторией с предыдущей темой по измерению фазы. Но, будучи вырванным из контекста, совершенная загадка.
Для меня, во всяком случае. Советую немного подробнее.
sergey sva
Сорри исправил поторопился написал. Нет это не измерение фазы, другая мысль возникла. Измерение фазы пока оставил по последнему варианту, считает фазу правильно.
Нужно вычислить все делители к1 к2 при которых будут совпадения (если будут ) и упорядочить их по мере убывания совпадений,если совпадения будут. к1 к2 от 2 до 170. const любое трехзначное число.
результ1 = ((const/K1)-(const/K2)); k1=4 k2=99
результ2 = ((const/K1)-(const/K2));k1=66 r2=22....
....
найти все к1 к2 когда результат1 == результат2
Herz
Перечитывал-перечитывал, но так ничего и не понял. У Вас есть переменная const - целое число, изменяющееся в диапазоне от 100 до 999, так? Есть некие два делителя К1 и К2, тоже целые числа, независимые друг от друга, так? Принимающие значения от 2 до 170. Но что значит: k1=4 k2=99 и k1=66 r2=22?
Может быть, для любого заданного целого трёхзначного числа const Вы ищете такую последовательность пар целых делителей К1 и К2 из диапазона 2 .. 170, при которой значение ((const/K1)-(const/K2)) будет оставаться постоянным? Каким именно?
Abell
Заранее извиняюсь, если неправильно понял, но, абстрагируясь от "const, результ и Кn", задачу можно сформулировать и записать так?
(A/B)-(A/C)=(A/D)-(A/E)
или:
(B-C)/BxC=(D-E)/DxE
как-то так?
sergey sva
Цитата
(B-C)/BxC=(D-E)/DxE

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

Код
function calculate1 (size, namef)
stream_c   = fopen(namef ,'wt');

arrdiv = 2:1:size^2;
indexbuf = 2;

for b=2:size
    for c=2:size        
        arrdiv(indexbuf) = (b-c)/(b*c);                  
        indexbuf =  indexbuf +1;
    end
end

@требуется найти все одинаковые значений(если есть)  в arrdiv и вывести в файл вместе с делителями.
@fprintf(stream_c  ,'k1 =%d;  k2 =%d; result = %d; \n',b,c arrdiv);
@ желательно упорядочить по количеству совпадений.

......
...

fclose(stream_c);


end
Abell
sergey sva, а можно абстрагироваться на всю катушку? sm.gif если для Вашей задачи коэффициент const (который я обозначил A) вообще не играет роли - может, подойти немного с другой стороны и все необходимые преобразования проводить после?

B-C = D-E
Abell
P.S. Прошу опять-таки извинить, если, не понимая всей полноты задачи, ляпну очевидность, но вдруг - допустим на минуточку - это решение Вам подходит, то максимальное количество совпадений в ряду возможных целых значений с дискретностью 1, допустим, от K1 до Kn, будет-таки при B-C=K1, и всего их будет, конечно, Kn-K1
HardEgor
Элементарная математика
x1 = ((const/K1)-(const/K2))
x2 = ((const/K3)-(const/K4))
x1 = x2
дальше записываем:
((const/K1)-(const/K2)) = ((const/K3)-(const/K4))
сокращаем const:
1/K1-1/K2 = 1/K3-1/K4
на любом языке делаем перебор всех значений:
Код
for  k1=2 to 170 step 1
  for  k2=2 to 170 step 1
    for  k3=2 to 170 step 1
       for  k4=2 to 170 step 1
          if  (1/K1-1/K2 == 1/K3-1/K4)
             print K1, K2, K3, K4

На интерпретаторе за несколько минут всё найдет, на компиляторе - за секунды
Herz
Могу ошибаться (ибо мы тут привычными догадками занимаемся), но автору, кажется, нужны пары чисел. И целые.
HardEgor
Цитата(Herz @ Aug 3 2015, 03:01) *
Могу ошибаться (ибо мы тут привычными догадками занимаемся), но автору, кажется, нужны пары чисел. И целые.

Пары и получим, т.е. комбинации из 4 чисел, там их немного будет, но это будет обозримый массив из которого лишние комбинации можно ручками выкинуть типа одинаковых комбинаций:
4;99;99;4
99;4;99;4
99;4;4;99
Вот он пример приводит, все 4 числа разные:
Цитата
результ1 = ((const/K1)-(const/K2)); k1=4 k2=99
результ2 = ((const/K1)-(const/K2));k1=66 r2=22

Единственная проблема будет при сравнении вещественных чисел, так и она решается просто - в проверке избавиться от деления, формулу 1/K1-1/K2 = 1/K3-1/K4 преобразуем в виду:
(K2-K1)*K3*K4 = K1*K2*(K3-K4)
и проверяем её.
Abell
Цитата(HardEgor @ Aug 3 2015, 04:40) *
Пары и получим, т.е. комбинации из 4 чисел, там их немного будет, но это будет обозримый массив из которого лишние комбинации можно ручками выкинуть типа одинаковых комбинаций:

Надо не пары, а самую длинную цепочку совпадений laughing.gif
Цитата
Нужно найти все К1 К2 при которых будет максимальное количество совпадений x2=x25=x41...
HardEgor
Цитата(Abell @ Aug 3 2015, 11:21) *
Надо не пары, а самую длинную цепочку совпадений laughing.gif
Цитата
Нужно найти все К1 К2 при которых будет максимальное количество совпадений x2=x25=x41...

А вы понимаете что здесь написано? что такое x2,x25,x41 - это какие-то переменные? или ошибочно записанные значения 2,25,41 ?
Может быть вы не заметили, в следующих сообщениях он уточнил задание.
Abell
Цитата(HardEgor @ Aug 3 2015, 08:50) *
А вы понимаете что здесь написано? что такое x2,x25,x41 - это какие-то переменные? или ошибочно записанные значения 2,25,41 ?
Может быть вы не заметили, в следующих сообщениях он уточнил задание.

Честно говоря, понимаю с трудом, т.к. автор явно запутался в формулировке.
Или устал, или математику забыл, или не хочет напрягаться в надежде, что компьютер умнее и быстрее посчитает laughing.gif
Если мух и котлет разложить по разным тарелочкам, то, насколько я понял, х - это результат вычитания, с порядковым номером.
Опять же, насколько понял - автор хочет узнать, сколько вообще может быть одинаковых результатов при разных значениях пары чисел.
В следующих сообщениях автор не то чтобы уточнил задание, а запутал.
Цитата
все делители к1 к2 при которых будут совпадения (если будут ) и упорядочить их по мере убывания совпадений,если совпадения будут

В любом случае, спорить, что хотел автор - смысла нет laughing.gif
sergey sva
Благодарю помогли )). как раз это и нужно было.
Herz
Цитата(sergey sva @ Aug 3 2015, 15:21) *
Благодарю помогли )). как раз это и нужно было.

Было б здорово и нам узнать, что же именно нужно было из предложенного. biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.