0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
1

Корень и модуль

20.05.2012, 23:30. Показов 8382. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как записать без библиотеки <math.h> корень (x), модуль (x).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2012, 23:30
Ответы с готовыми решениями:

корень,под корнем модуль
y=(e^-bt)*sin(at+b)-корень,под корнем модуль (bt+a) w=b*sin(at^2*cos2t)-1 a=-0.5 t=0.44 b-1.7

Создать модуль функции корень 3 степени из х
Создать модуль функции корень 3 степени из х.

Как расписать модуль комплексного числа через корень
Привет Всем! Работаю в MathCAD Prime3. Есть комплексная функция, комплексного аргумента. Можно ли...

Нужен модуль для залива файлов в корень сайта,Через джумлу!
Нужен модуль для залива файлов в корень сайта,Через джумлу! Добавлено через 29 минут Либо...

19
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 105
20.05.2012, 23:38 2
В смысле вычислить корень или выявить модуль??
0
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
20.05.2012, 23:54  [ТС] 3
вычеслить корень.
тобишь БЕЗ библиотеки вводишь число,а оно ищет корень. И вводишь число например -2, а оно выводит 2. По модулю.
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
21.05.2012, 00:08 4
Модуль просто, примерно так:
C++
1
2
3
4
template<typename Type>
Type abs(Type const& value) {
    return value < static_cast<Type>(0) ? -value : value;
}
0
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 5
21.05.2012, 00:14 5
Можно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
int modul(int a)
{
    if(a<=-1)
        a*=-1;
    return a;
}
0
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:21  [ТС] 6
Цитата Сообщение от WebPirat Посмотреть сообщение
Можно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
int modul(int a)
{
    if(a<=-1)
        a*=-1;
    return a;
}
в корне (а) я так понимаю это выражение, в модуле (а) тоже?
0
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 5
21.05.2012, 00:25 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
int pow(int);//функция которая вычисляет корень
int modul(int);//функция которая вычисляет модуль
int main()
{
    int a;
    cin>>a;
    //Если хотим узнать модуль 
    cout<<modul(a)<<endl;
        //Если хотим посчитать корень
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
int modul(int a)
{
    if(a<=-1)
        a*=-1;
    return a;
}
0
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:32  [ТС] 8
начало понял,а зачем 17 строка и ниже..это и есть запись корня и модуля?

Добавлено через 3 минуты
В такой программе пишет что есть ошибка.
[PHP]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int pow(int);
 
int main()
 
{
    int a;  //Если хотим посчитать корень
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
0
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 5
21.05.2012, 00:35 9
Сверху объявляется прототип функции, а внизу она уже описывается, просто если не будет прототипа программа выдаст ошибку на этапе компиляции.
Конечно есть,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
int pow(int);
 
int main()
 
{
    int a;  //Если хотим посчитать корень
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
исправь функцию и не будет ошибки.
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 00:39 10
Хардкор, только хардкор!

C++
1
2
3
4
5
6
#define abs(x) ((x < 0) ? -(x) : (x))
 
inline float sqrt(float number){
    long i;float y;
    return number*(y=*(float *)(&(i=0x5f3759df-((*(long *)&number)>>1)))) * (1.5f - (number*0.5f * y * y));
}
Update:
Пока я тут хардкором занимался, кто-то написал возведение в степень. Это вроде $#$^%$$# не корень...
0
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:41  [ТС] 11
только вот корень с 10 равен 3)
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 00:46 12
Может потому что int != float?

Добавлено через 3 минуты
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Update:
Пока я тут хардкором занимался, кто-то написал возведение в степень. Это вроде $#$^%$$# не корень...
Извиняюсь, просто pow -> power -> степень. И она тоже считается в цикле... Не углядел немного рассчёт. Но всё равно считать sqrt так вот - не правильно...
0
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:58  [ТС] 13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
 
double pow(float a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
 
 
int main()
 
{
    int a;  //Åñëè õîòèì ïîñ÷èòàòü êîðåíü
    cout<<" vvedit6 a:";
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
так тоже не работает.
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 01:01 14
А чем не нравиться

C++
1
2
3
4
5
inline float sqrt(float number){
    long i;float y;
    return number*(y=*(float *)(&(i=0x5f3759df-((*(long *)&number)>>1))))
            *(1.5f-(number*0.5f*y*y));
}
Матчасть.
1
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
21.05.2012, 01:03 15
Ничего, что pow (power) - это возведение в степень, а извлечение квадратного корня - sqrt (square root)?
1
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 01:04 16
Цитата Сообщение от gray_fox Посмотреть сообщение
Ничего, что pow (power) - это возведение в степень, а извлечение квадратного корня - sqrt (square root)?
Мне тоже это интересно, но чего с них взять?.. Бывают и такие заблуждения... Просто я уже пытался обратить на это внимание...
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
21.05.2012, 01:16 17
Хм... про кваку был не в теме, спасибо.
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 01:20 18
Да не за что =) Всегда рад помочь в плане просвещения. Мне тоже этот форум часто помогает.

Мне больше интересно, как это магическое число вообще работает?.. Загадка вселенной, ... .
Но работает ОЧЕНЬ быстро. Правда не совсем точно, но если добавить ещё добавить итерацию по Ньютону точность возрастёт =) И хорошо так возрастёт.
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
21.05.2012, 01:37 19
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Но работает ОЧЕНЬ быстро. Правда не совсем точно
Думаю там высокая точность не особо нужна. Вообще, оптимизация в геймдеве - больная тема)
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 02:12 20
Цитата Сообщение от gray_fox Посмотреть сообщение
Вообще, оптимизация в геймдеве - больная тема
Сейчас, к сожалению, я наблюдаю обратное. Это раньше, когда разрабатывался Quake III был важен чуть ли не каждый такт - именно так Id Software дали по тем временам невероятную картинку. Несколько иначе подошли к делу Blizzard - они решили сделать огромное количество спрайтов с детальной анимацией - так получились StarCraft и Diablo II. Первый, кстати, не плохо (не плохо, это значит именно "не плохо", никак не "хорошо" или "отлично") смотрится даже сейчас только благодаря хорошей анимацией. Вообще метелица решила, что лучше проработает исторический момент, остальное доделает воображение. Что сказать - у них это получилось

ИМХО:
Но сейчас проекты настолько большие, что когда кто-то разрабатывает небольшой модуль, например, рассчёта шейдера луча, то этот кто-то, конечно, используeт std::sqrt(number), но не
number*(y=(y=*(float *)(&(i=0x5f3759df-((*(long *)&number)>>1))))*(1.5f - (number*0.5f * y * y)))*(1.5f - (number*0.5f * y * y))
Ужасно, что могу сказать...
0
21.05.2012, 02:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2012, 02:12
Помогаю со студенческими работами здесь

Получите корень из суммы квадратов всех элементов массива (модуль вектора)
Получите корень из суммы квадратов всех элементов массива (модуль вектора).

Найти корень уравнения методом последовательных итераций.Второй корень вычисляет неверно
Задание:Написать программу для вычисления методом последовательных итераций уравнения x=Aexp(-x)....

Вычислить массу пластинки ограниченной линиями: y=корень(x-1) , y=0, x=2 с поверхностной плотностью пропорциональной 2*корень(x) .
Вычислить массу пластинки ограниченной линиями: y=корень(x-1) , y=0, x=2 с поверхностной...

С помощью рекурсивной функции найдити квадратный корень Y=корень из X, воспользовавшись итерационной формулой Ньютона
С помощью рекурсивной функции найдите с заданной точностью квадратный корень Y=корень из X ,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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