방정식에서 최소 및 최대 출력을 얻으려면 .Net에 기본 제공 함수가 있는지 묻고 싶습니다. 예를 들어방정식의 출력 범위를 얻으십시오.
float a,b,c,d,e,f,g;
float result() {
return a*b/c + d/(e-d) + f/g;
} //how to know the possible min and max value of result()?
I 도메인 알 (A, B, C, D, E, F의 최소 및 최대, g을 반응시켜, (ED), g가 0이 아닌 경우)는 어떻게 얻을 결과의 범위()? 지금까지 수동으로 중첩 루프를 실행 해 보았습니다 : figure: Output range of a function (< - 그림 참조). 하지만 내가 원하는 것은 더 빠른 계산입니다 (아마도 built-in function?). 코드는 해당 이미지의 결과를 생성합니다 : 내가 잘못 키워드를 요구하는 경우
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TEST {
class Program {
static void Main(string[] args) {
ThreatRange();
Console.ReadLine();
}
static void ThreatRange() {
int a0 = 1, a1 = 10; // I know the min and max value for each variable
int b0 = 1, b1 = 10;
int c0 = 1, c1 = 10;
int d0 = 1, d1 = 10;
int e0 = 1, e1 = 10;
int f0 = 1, f1 = 10;
int g0 = 1, g1 = 10;
float threat = 0, threatmin = 9999, threatmax = 0;
for (int a = a0; a <= a1; a++) {
for (int b = b0; b <= b1; b++) {
for (int c = c0; c <= c1; c++) {
for (int d = d0; d <= d1; d++) {
for (int e = e0; e <= e1; e++) {
for (int f = f0; f <= f1; f++) {
for (int g = g0; g <= g1; g++) {
threat = a * b/(float)c + d/(float)Math.Max(1, Math.Abs(e - d)) + (d/(float)Math.Max(1, Math.Abs(e - d))) * (f/g);
// I want to know the min and max output from the equation above
if (threat < threatmin) threatmin = threat;
if (threat > threatmax) threatmax = threat;
Console.WriteLine(a + "," + b + "," + c + "," + d + "," + e + "," + f + "," + g);
Console.WriteLine("Min: " + threatmin + ". Max: " + threatmax);
}
}
}
}
}
}
}
}
}
}
실례를, 내가하지 영어를 모국어 야도 내 수학이 좋다. 당신이 나에게 C#을 이외의 솔루션을 제공 할 수있는 도구를 알고 있다면 :( 는 말씀 해주십시오.
심지어 알고리즘이 존재하는 경우가 꽤 도전, 임의의 함수의 최소 및 최대를 얻을 것이라는 점에 유의하시기 바랍니다도 당신의 코드. 하지만 당신이'List'또는'array'를 사용할 수 있다고 생각합니다. –
@MohitShrivastava는 많은 매개 변수를 가진 방정식의 최소 및 최대 출력 값을 알고 싶다고합시다. 많은 중첩 된 루프를 사용하는 것보다 더 좋은 방법이 있습니까? –
예 .. 목록이나 배열에 입력을 넣으면 중첩 루프 대신 LINQ ...를 사용할 수 있습니다. 그리고 그것이 하나의 라이너 또는 2가 될 것이라고 믿습니다. –