Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Big_best03
-26 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 52
Завершенные тесты: 1
1

Дополните пожалуйста эти методы! скалярное произведение векторов, умножение на скаляр, сравнение векторов, сравнение

16.09.2018, 14:55. Просмотров 1055. Ответов 11
Метки нет (Все метки)

Java
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
public class VectorTricks {
 
    public static void main(String[] args) {
        Vector v1 = new Vector(1, 2, 3);
        Vector v2 = new Vector(1, 2, 3);
        System.out.println(v1.lengthModuleVector());
        System.out.println(v1.lengthModuleVector(v2));
        System.out.println(v1.addVector(v2));
        System.out.println(v1.minusVector(v2));
}
 
    static class Vector {
        private double x, y, z;
 
        public Vector() {
            setX(0);
            setY(0);
            setZ(0);
}
 
        public Vector(double x, double y, double z) {
            this.setX(x);
            this.setY(y);
            this.setZ(z);
}
 
        public Vector(Vector v) {
            this.setX(v.getX());
            this.setY(v.getY());
            this.setZ(v.getZ());
}
 
        // длина модуль вектора
            public double lengthModuleVector() {
            return Math.sqrt(x * x + y * y + z * z);
}
 
        // сумма векторов
            public Vector addVector(Vector v) {
            return new Vector(getX() + v.getX(), getY() + v.getY(), getZ() + v.getZ());
}
 
        // разность векторов
            public Vector minusVector(Vector v) {
            return new Vector(getX() - v.getX(), getY() - v.getY(), getZ() - v.getZ());
}
 
        // длина ( модуль ) двух векторов
            public double lengthModuleVector(Vector v) {
            return Math.sqrt((y * v.getZ() - z * v.getY()) * (y * v.getZ() - z * v.getY()) + (x * v.            getZ() - z * v.getY())
            * (x * v.getZ() - z * v.getY()) + (x * v.getY() - y * v.getX()));
}
 
        public double getX() {
        return x;
}
 
        public void setX(double x) {
        this.x = x;
}
 
        public double getY() {
        return y;
}
 
        public void setY(double y) {
        this.y = y;
}
 
        public double getZ() {
        return z;
}
 
        public void setZ(double z) {
        this.z = z;
}
 
        @Override
        public int hashCode() {
        return Objects.hash(x, y, z);
}
 
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Vector other = (Vector) obj;
            if (Double.doubleToLongBits(x) != Double.doubleToLongBits(other.x))
                return false;
            if (Double.doubleToLongBits(y) != Double.doubleToLongBits(other.y))
                return false;
            if (Double.doubleToLongBits(z) != Double.doubleToLongBits(other.z))
                return false;
            return true;
}
 
        @Override
        public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Vector [x=");
        builder.append(x);
        builder.append(", y=");
        builder.append(y);
        builder.append(", z=");
        builder.append(z);
        builder.append("]");
        return builder.toString();
}
 
    }
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2018, 14:55
Ответы с готовыми решениями:

Скалярное произведение векторов
Передо мной стоит задача посчитать скалярное произведение 2-ух векторов ((a,b)=a1b1+a2b2). Пусть в...

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

Определить функцию работы с векторами: Сложение векторов, разность, умножение на скаляр,скалярное произведение векторов,вычисление длины вектора
с помощью фукнций map/ map-into / reduce определить функцию работы с векторами: Сложение векторов,...

создание, сложение, вычитание векторов, скалярное и векторное умножение векторов
Есть задание по курсовой работе: надо разработать классы для реализации операций векторной...

Скалярное произведение векторов(косинус), разность векторов
Кто понимает, объясните, пожалуйста, как вы понимаете, почему две формулы - для скалярного...

11
Big_best03
-26 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 52
Завершенные тесты: 1
19.09.2018, 10:22  [ТС] 2
В чем ошибка с умножением на скаляр?
Java
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package com.company;
 
import com.sun.javafx.geom.Quat4f;
import java.util.Objects;
 
public class VectorTricks {
 
    public static void main(String[] args) {
        Vector v1 = new Vector(1, 2, 3);
        Vector v2 = new Vector(1, 2, 3);
        System.out.println(v1.lengthModuleVector());
        System.out.println(v1.lengthModuleVector(v2));
        System.out.println(v1.addVector(v2));
        System.out.println(v1.minusVector(v2));
        System.out.println(v1.scalarMult(v2));
        System.out.println(v1.mult());
    }
 
    static class Vector {
        private double x, y, z;
 
        public Vector() {
            setX(0);
            setY(0);
            setZ(0);
        }
 
        public Vector(double x, double y, double z) {
            this.setX(x);
            this.setY(y);
            this.setZ(z);
        }
 
        public Vector(Vector v) {
            this.setX(v.getX());
            this.setY(v.getY());
            this.setZ(v.getZ());
        }
 
        // длина модуль вектора
        public double lengthModuleVector() {
            return Math.sqrt(x * x + y * y + z * z);
        }
 
        // сумма векторов
        public Vector addVector(Vector v) {
            return new Vector(getX() + v.getX(), getY() + v.getY(), getZ() + v.getZ());
        }
 
        // разность векторов
        public Vector minusVector(Vector v) {
            return new Vector(getX() - v.getX(), getY() - v.getY(), getZ() - v.getZ());
        }
 
        // длина ( модуль ) двух векторов
        public double lengthModuleVector(Vector v) {
            return Math.sqrt((y * v.getZ() - z * v.getY()) * (y * v.getZ() - z * v.getY()) + (x * v.getZ() - z * v.getY())
                    * (x * v.getZ() - z * v.getY()) + (x * v.getY() - y * v.getX()));
        }
 
        // скалярное произведение
        public double scalarMult(Vector v) {
            return x * v.x + y * v.y + z * v.z;
        }
 
        // умножение на скаляр
        public Vector mult() {
            Quat4f other = null;
            return new Vector(this.x * other.x, this.y * other.y, this.z * other.z);
        }
 
        public double getX() {
            return x;
        }
 
        public void setX(double x) {
            this.x = x;
        }
 
        public double getY() {
            return y;
        }
 
        public void setY(double y) {
            this.y = y;
        }
 
        public double getZ() {
            return z;
        }
 
        public void setZ(double z) {
            this.z = z;
        }
 
        @Override
        public int hashCode() {
            return Objects.hash(x, y, z);
        }
 
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Vector other = (Vector) obj;
            if (Double.doubleToLongBits(x) != Double.doubleToLongBits(other.x))
                return false;
            if (Double.doubleToLongBits(y) != Double.doubleToLongBits(other.y))
                return false;
            if (Double.doubleToLongBits(z) != Double.doubleToLongBits(other.z))
                return false;
            return true;
        }
 
        @Override
        public String toString() {
            StringBuilder builder = new StringBuilder();
            builder.append("Vector [x=");
            builder.append(x);
            builder.append(", y=");
            builder.append(y);
            builder.append(", z=");
            builder.append(z);
            builder.append("]");
            return builder.toString();
        }
 
    }
}
0
HighPredator
5698 / 2019 / 723
Регистрация: 10.12.2010
Сообщений: 5,795
Записей в блоге: 3
19.09.2018, 14:39 3
Big_best03, а что на ваш взгляд в методе сделано? Как вы это видите, построчно опишите.
1
JIeIIIa
951 / 571 / 135
Регистрация: 23.05.2012
Сообщений: 7,370
19.09.2018, 19:33 4
Цитата Сообщение от Big_best03 Посмотреть сообщение
В чем ошибка
В NullPointerException (строка 68). Хотя для начало стоит почитать что такое умножение вектора на скаляр.
0
19.09.2018, 19:33
Aviz__
805 / 597 / 161
Регистрация: 17.02.2014
Сообщений: 3,526
20.09.2018, 10:48 5
Цитата Сообщение от HighPredator Посмотреть сообщение
Как вы это видите
Цитата Сообщение от JIeIIIa Посмотреть сообщение
стоит почитать
судя по стилю - это наш старый не злобный Троль...
0
JIeIIIa
20.09.2018, 11:01
  #6

Не по теме:

Aviz__, по дате регистрации не похоже.

0
Aviz__
20.09.2018, 11:20
  #7

Не по теме:

Цитата Сообщение от JIeIIIa Посмотреть сообщение
по дате
может, это первая его маска. как раз, с этого времени + три недели, он стал орудовать...

0
Big_best03
-26 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 52
Завершенные тесты: 1
24.09.2018, 17:58  [ТС] 8
Цитата Сообщение от HighPredator Посмотреть сообщение
а что на ваш взгляд в методе сделано? Как вы это видите, построчно опишите.
умножение на скаляр. Он написан правильно, но выдает ошибку
0
Миниатюры
Дополните пожалуйста эти методы!  скалярное произведение векторов,  умножение на скаляр,  сравнение векторов,  сравнение  
xoraxax
24.09.2018, 18:02
  #9

Не по теме:

это точно он, или сосед по палате

0
HighPredator
5698 / 2019 / 723
Регистрация: 10.12.2010
Сообщений: 5,795
Записей в блоге: 3
25.09.2018, 08:21 10
Цитата Сообщение от Big_best03 Посмотреть сообщение
Он написан правильно, но выдает ошибку
А где у вас тут скаляр?
0
Big_best03
-26 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 52
Завершенные тесты: 1
08.10.2018, 16:10  [ТС] 11
не могу реализовать метод умножения на скаляр, и метод сравнения двух длин векторов. Помогите пожалуйста

Java
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.company;
 
import java.util.Objects;
 
public class VectorTricks {
 
    public static void main(String[] args) {
        Vector v1 = new Vector(1, 2, 3);
        Vector v2 = new Vector(1, 2, 3);
        Integer x = 5;
        Integer y = 7;
        Integer z = 5;
        System.out.println(v1.lengthModuleVector());
        System.out.println(v1.lengthModuleVector(v2));
        if( v1.lengthModuleVector() == v2.lengthModuleVector() )
        {}
        System.out.println(v1.addVector(v2));
        System.out.println(v1.minusVector(v2));
        System.out.println(v1.scalarMult(v2));
        System.out.println(v1.scalarProduct(v2,2));
        System.out.println(x.equals(y)); // Srv
        System.out.println(x.equals(z));
    }
 
    static class Vector {
        private double x, y, z;
 
        public Vector() {
            setX(0);
            setY(0);
            setZ(0);
        }
 
        public Vector(double x, double y, double z) {
            this.setX(x);
            this.setY(y);
            this.setZ(z);
        }
 
        public Vector(Vector v) {
            this.setX(v.getX());
            this.setY(v.getY());
            this.setZ(v.getZ());
        }
 
        // длина модуль вектора
        public double lengthModuleVector() {
            return Math.sqrt(x * x + y * y + z * z);
        }
 
        // сумма векторов
        public Vector addVector(Vector v) {
            return new Vector(getX() + v.getX(), getY() + v.getY(), getZ() + v.getZ());
        }
 
        // разность векторов
        public Vector minusVector(Vector v) {
            return new Vector(getX() - v.getX(), getY() - v.getY(), getZ() - v.getZ());
        }
 
        // длина ( модуль ) двух векторов
        public double lengthModuleVector(Vector v) {
            return Math.sqrt((y * v.getZ() - z * v.getY()) * (y * v.getZ() - z * v.getY()) + (x * v.getZ() - z * v.getY())
                    * (x * v.getZ() - z * v.getY()) + (x * v.getY() - y * v.getX()));
        }
 
        // скалярное произведение
        public double scalarMult(Vector v) {
            return x * v.x + y * v.y + z * v.z;
        }
 
        // умножение на скаляр
        public double scalarProduct(Vector vector, int m) {
            double result = 0;
            for (int i = 0; i < 3; i++) {
                result += vector.array[i] * m;
            }
            return result;
        }
 
        public double getX() {
            return x;
        }
 
        public void setX(double x) {
            this.x = x;
        }
 
        public double getY() {
            return y;
        }
 
        public void setY(double y) {
            this.y = y;
        }
 
        public double getZ() {
            return z;
        }
 
        public void setZ(double z) {
            this.z = z;
        }
 
        @Override
        public int hashCode() {
            return Objects.hash(x, y, z);
        }
 
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Vector other = (Vector) obj;
            if (Double.doubleToLongBits(x) != Double.doubleToLongBits(other.x))
                return false;
            if (Double.doubleToLongBits(y) != Double.doubleToLongBits(other.y))
                return false;
            if (Double.doubleToLongBits(z) != Double.doubleToLongBits(other.z))
                return false;
            return true;
        }
 
        @Override
        public String toString() {
            StringBuilder builder = new StringBuilder();
            builder.append("Vector [x=");
            builder.append(x);
            builder.append(", y=");
            builder.append(y);
            builder.append(", z=");
            builder.append(z);
            builder.append("]");
            return builder.toString();
        }
 
    }
}
0
Илья Лазарь
2 / 1 / 1
Регистрация: 18.12.2016
Сообщений: 26
10.10.2018, 17:07 12
Лучший ответ Сообщение было отмечено Big_best03 как решение

Решение

Big_best03, Держи, бедолага.
Java
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
class MyVector {
    private double x,y,z;
 
    MyVector(double x,double y,double z){
        this.x=x;
        this.y=y;
        this.z=z;
    }
 
    double scalarMult(MyVector a,MyVector b){
        return (a.x*b.x+a.y*b.y+a.z*b.z);
    }
 
    private double vectorLength(){
        return (Math.sqrt(Math.pow(x,2)+Math.pow(y,2)+Math.pow(z,2)));
    }
 
    void compareVectorLength(MyVector a,MyVector b){
        if(a.vectorLength()<b.vectorLength()){
            System.out.println("Длина вектора b больше: "+b.vectorLength()+">"+a.vectorLength());
        }
        else if(a.vectorLength()>b.vectorLength()){
            System.out.println("Длина вектора a больше: "+a.vectorLength()+">"+b.vectorLength());
        }
        else if(a.vectorLength()==b.vectorLength()){
            System.out.println("Длины векторов равны : "+a.vectorLength()+"="+b.vectorLength());
        }
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;
public class Main {
    public static void main(String[]args){
        Scanner in=new Scanner(System.in);
        System.out.println("Введите x для первого вектора:");
        double x=in.nextDouble();
        System.out.println("Введите y для первого вектора:");
        double y=in.nextDouble();
        System.out.println("Введите z для первого вектора:");
        double z=in.nextDouble();
        MyVector v1=new MyVector(x,y,z);
        System.out.println("Введите x для второго вектора:");
        x=in.nextDouble();
        System.out.println("Введите y для второго вектора:");
        y=in.nextDouble();
        System.out.println("Введите z для второго вектора:");
        z=in.nextDouble();
        MyVector v2=new MyVector(x,y,z);
        MyVector v3=new MyVector(0,0,0);
        System.out.println("Скалярное произведение векторов: "+v3.scalarMult(v1,v2));
        v3.compareVectorLength(v1,v2);
    }
}
Добавлено через 3 минуты
Big_best03, И сделай в классе какой-нибудь метод
Java
1
void print
, который будет выводить результаты работы остальных методов, чтобы в
Java
1
main
кучу раз не делать
Java
1
System.out.println
С остальными методами я думаю по аналогии разберёшься
1
10.10.2018, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2018, 17:07

Выполнить скалярное произведение двух векторов!Помоги пожалуйста!на экзамене сейчас
Выполнить скалярное произведение двух векторов, производя вместо умножения, операцию поразрядного...

Скалярное умножение векторов(Ассоциативность,Коммутативность,Умножение с пустым знаком)
Помогите проверить операцию &quot;скалярное произведение векторов&quot; на Ассоциативность,Коммутативность и...

Скалярное умножение векторов
Как реализовать скалярное умножение векторов (A, B) для класса Vector с майном?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru