Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 71
1

Математические данные

22.09.2013, 19:32. Показов 1315. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача:
Кликните здесь для просмотра всего текста

Математические данные



Ответ получается -2446.50... , а должен 39.374 , в чём проблема?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double x, y, z, f;
            x = -2.335 * Math.Pow(10, -2);
            y = 2.23;
            z = 15.221;
            f = Math.Exp(Math.Abs(x - y)) * Math.Pow(Math.Abs(x - y), x + y) / Math.Atan(x) + Math.Atan(z) + Math.Pow(Math.Pow(x, 6) + Math.Log(y), 1.0 / 3.0);
 
            Console.WriteLine("F = " + f);
                    Console.ReadLine();
                 }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2013, 19:32
Ответы с готовыми решениями:

Математические действия
Имеется такой двумерный массив : 1 6 15 70 4 7 16 40 5 1 8 20 50 20 60 ...

Математические формулы c#
Итак получил задание в Универе, всё бы ничего но вот как работать с математическими формулами...

Математические функции
Ввести любое число с клавиатуры. Вычислить: -Остаток от деления на два -Модуль -Дробную часть...

Математические классы
1. Создать пространство имен Algebra. 2. Разработать класс Vector для манипуляции с векторами...

10
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,918
22.09.2013, 19:48 2
Цитата Сообщение от wnmkr Посмотреть сообщение
Math.Atan(x) + Math.Atan(z)
это взять в скобки, а логарифм в конце выражения возвести в квадрат. Может, ещё какие-то ошибки в коде есть.
В общем, прокачивайте внимательность и знание языка (о приоритете выполнения операций)
0
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 71
22.09.2013, 19:56  [ТС] 3
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
это взять в скобки, а логарифм в конце выражения возвести в квадрат. Может, ещё какие-то ошибки в коде есть.
В общем, прокачивайте внимательность и знание языка (о приоритете выполнения операций)
а как правильно его возводить в степень?

не так ли?
C#
1
 Math.Pow(Math.Log(y),2)
0
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,918
22.09.2013, 20:14 4
нет, я бы просто умножил вычисленный логарифм сам на себя.
Почему именно так? Чтобы не зависеть от возможных кривых ручек мелкософтовского программиста и от машинной арифметики. Ведь pow принимает степень числа как вещественное число (т.е. целое число может перестать быть целым, например, 2 может превратиться в 1.9999999...), а затем прогер может ещё как-то это значение испохабить (ещё какой-нибудь конверсией). Если сусликов (потери точности при преобразовании типов и возможных ошибок в библиотечных функциях и классах языка) Вы не видите - это не значит, что их нет
0
7 / 7 / 6
Регистрация: 21.10.2012
Сообщений: 25
22.09.2013, 20:53 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double x, y, z, f;
            x = -2.235 * Math.Pow(10, -2);
            y = 2.23;
            z = 15.221;
            f = ((Math.Exp(Math.Abs(x - y)) * Math.Pow(Math.Abs(x - y), x + y)) / (Math.Atan(x) + Math.Atan(z))) + Math.Pow(Math.Pow(x, 6) + Math.Log(y), 2.0 / 3.0);
 
            Console.WriteLine("F = " + f);
            Console.ReadLine();
        }
    }
}
0
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 71
22.09.2013, 21:03  [ТС] 6
[QUOTE=Aristat;5086577]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double x, y, z, f;
            x = -2.235 * Math.Pow(10, -2);
            y = 2.23;
            z = 15.221;
            f = ((Math.Exp(Math.Abs(x - y)) * Math.Pow(Math.Abs(x - y), x + y)) / (Math.Atan(x) + Math.Atan(z))) + Math.Pow(Math.Pow(x, 6) + Math.Log(y), 2.0 / 3.0);
 
            Console.WriteLine("F = " + f);
            Console.ReadLine();
        }
    }
}
[/QUOTE
спасибо , понял свои ошибки .
Но почему вместо sqrt тут записывается Math.Pow(Math.Pow(x, 6) + Math.Log(y), 2.0 / 3.0);
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.09.2013, 21:19 7
VTsaregorodtsev, pow считается как сумма ряда, так что там погрешность будет сильно больше, чем 1.9999999
0
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,918
25.09.2013, 21:33 8
Цитата Сообщение от Psilon Посмотреть сообщение
pow считается как сумма ряда
тогда это редкий мастдай. Если мне не изменяют мозги в полвторого ночи - X^Y=2^(Log2(X)*Y).
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.09.2013, 21:57 9
VTsaregorodtsev, а логарифм, по-вашему, как считается?

Добавлено через 10 минут
Хотя есть определенные эвристики. Например:
C++
1
2
3
4
5
6
7
8
9
double fastPow(double a, double b) {
  union {
    double d;
    int x[2];
  } u = { a };
  u.x[1] = (int)(b * (u.x[1] - 1072632447) + 1072632447);
  u.x[0] = 0;
  return u.d;
}
Но они очень неточные. Например
C#
1
2
3
            double x = 12.53, y = 16.45;
            Console.WriteLine(Math.Pow(x, y));
            Console.WriteLine(PowerA(x, y));
у меня выдал ответ:
1,15158266266297E+18 //правильный ответ
8,9966384455562E+17
поэтому на практике редко используются
0
1487 / 1414 / 240
Регистрация: 19.02.2010
Сообщений: 3,918
29.09.2013, 21:32 10
Цитата Сообщение от Psilon Посмотреть сообщение
а логарифм, по-вашему, как считается?
Специально предназначенной для этого командой (со)процессора
1
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.09.2013, 23:08 11
VTsaregorodtsev, да, я уже этот вопрос провентилировал
http://stackoverflow.com/quest... redirect=1
0
29.09.2013, 23:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2013, 23:08
Помогаю со студенческими работами здесь

Математические задачи
Привет народ! помогите пожалуйста для решение 2 математических задач, буду признателен вам,

В массив выводить данные-id клиента, данные серверу и данные, отправленные сервером
Здравствуйте. Имеется клиент-серверное приложение, вопрос по стороне сервера. Имеется...

задачка математические выражения
есть задачка в виде уравнения (показываем уравнение. ждем недостающего. отдаем верно/не верно) A +...

Математические операции с матрицами
Даны квадратные матрицы A и B порядка n. Получить матрицу AB-BA на C# нужна прога


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru