Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 10
1

Найти значения переменных, которые будут соответствовать условиям

26.04.2017, 15:54. Показов 3344. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
безуспешно пробую решить простую задачу:
целые переменные s = 1 to 7, a = 1 to 5, b = 1 to 9
Нужно найти значения переменных, которые будут соответствовать условиям
a < s
b < s
s = a + b
последний код
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Main()
        For s As Integer = 1 To 7
            For a As Integer = 1 To 5
                If a < s Then
                    a = a
                End If
                For b As Integer = 1 To 9
                    If b < s Then
                        b = b
                    End If
                    If s  = a + b Then
                        Console.Write("number is:", s, a, b)
                        Console.ReadLine()
                    End If
 
                Next
            Next
        Next
        Console.ReadLine()
    End Sub
физическое решение примерно следующее
s = 2 a = 1 b = 1
s = 3 a = 1 b = 2
a =2 b = 1
и т.д.


Пожалуйста подтолкните в нужном направлении
Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2017, 15:54
Ответы с готовыми решениями:

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

Как найти нужные значения из ячеек, которые содержат разные данные, по нескольким условиям
Добрый день! Помогите, пожалуйста, два дня голову ломаю. Есть 5 столбцов с данными. Это либо...

найти значения переменных Х, У которые минимизируют функцию f(x,y) = -x-5y
y = asin(atan(0.4*x)) при x равном от -4 до 4 и найти значения переменных Х, У которые...

Сколько существует различных наборов значений переменных, которые удовлетворяют условиям?
Сколько существует различных наборов значений логических переменных x1, x2, … x8, y1, y2, … y8,...

27
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
26.04.2017, 17:40 2
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   
Sub Main()
 
        For a As Integer = 1 To 5
            For b As Integer = 1 To 9
                If (a < (a + b)) And (b < (a + b)) And ((a + b) <= 7) Then
                    Console.Write("number is: s=" & (a + b).ToString & ", a=" & a.ToString & ", b=" & b.ToString)
                    Console.ReadLine()
                End If
            Next
        Next
        Console.Write("The end.")
        Console.ReadLine()
 
    End Sub
1
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 10
26.04.2017, 21:27  [ТС] 3
У Вас получилось очень элегантное решение. И какое-то очень короткое. Это просто здорово.
К сожалению при описании задачи я обнаружил, что это решение является частным решением одного полинома. Могу ли я
обратиться к Вам за помощью в описании этого полинома? Огромное спасибо за помощь.
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
26.04.2017, 22:47 4
Условия задачи?
0
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 10
27.04.2017, 00:09  [ТС] 5
Полином, который у меня получился имеет общий вид

s*(n-1)= a(1) + a(2) + ....+ a(n)

где s должна быть большего любого из членов полинома (а) и сумма членов полинома должна равнятся s умноженной на количество членов полинома (n) минус 1

Конкретная задача для 3 и четырёх членов
для 3-х
s*2 = a1 +a2 +a3
где а1
а2 < s
а3
для 4-х членов
s*3 = a1 + a2 +a3 +a4
Такое впечатление что Вы предвидели решение и зделали только два цикла. И у меня пока не получается экстраполировать Ваше решение на четрёх членный (неоднозначное слово) полином.
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 05:14 6
Частные решения
Для трёхчлена:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        Dim An As Integer = 5
        Dim Bn As Integer = 9
        Dim Cn As Integer = 7
        Dim Sn As Integer = 7
        For a As Integer = 1 To An
            For b As Integer = 1 To Bn
                For c As Integer = 1 To Cn
                    If (a < 2 * (a + b + c)) And (b < 2 * (a + b + c)) And (c < 2 * (a + b + c)) And (2 * (a + b + c) <= Sn) Then
                        Console.WriteLine("s={0}, a={1}, b={2}, c={3}", 2 * (a + b + c), a, b, c)
                    End If
                Next
            Next
        Next
        Console.Write("Press ENTER to exit.")
        Console.ReadLine()
Для четырхчлена:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        Dim An As Integer = 5
        Dim Bn As Integer = 9
        Dim Cn As Integer = 7
        Dim Dn As Integer = 11
        Dim Sn As Integer = 7
       
        For a As Integer = 1 To An
            For b As Integer = 1 To Bn
                For c As Integer = 1 To Cn
                    For d As Integer = 1 To Dn
                        If (a < 3 * (a + b + c + d)) And (b < 3 * (a + b + c + d)) _
                            And (c < 3 * (a + b + c + d)) And (d < 3 * (a + b + c + d)) _
                            And (3 * (a + b + c + d) <= Sn) Then
                            Console.WriteLine("s={0}, a={1}, b={2}, c={3}, d={4}", 3 * (a + b + c + d), a, b, c, d)
                        End If
                    Next
                Next
            Next
        Next
        Console.Write("Press ENTER to exit.")
        Console.ReadLine()
Ограничения для c и d взяты с потолка, кстати, при s<=7 для четырёхчлена решений нет. Над общим решением буду думать
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
27.04.2017, 08:48 7
Мне кажется, условие неправильное:
VB.NET
1
2
3
If (a < 3 * (a + b + c + d)) And (b < 3 * (a + b + c + d)) _
                            And (c < 3 * (a + b + c + d)) And (d < 3 * (a + b + c + d)) _
                            And (3 * (a + b + c + d) <= Sn) Then
Достаточно
VB.NET
1
If (3 * (a + b + c + d) <= Sn) Then
Ведь сумма положительных чисел, тем более умноженная на положительное число, будет всегда больше любого из этих чисел.
И по условию вроде не (a < 3 * (a + b + c + d)) должно быть, а (a < (a + b + c + d)), то есть число меньше S, без умножения на N-1
И при выводе результатов, сумму не нужно на 3 умножать, выводить только S.
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 09:19 8
Да, я слегка не прав, действительно во всех случаях достаточно только одной проверки на не превышение Sn, остальные всегда true при числах больше нуля
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
27.04.2017, 11:08 9
Цитата Сообщение от MickeS Посмотреть сообщение
кстати, при s<=7 для четырёхчлена решений нет
В твоем примере решения нет, потому что изначально s должно быть больше любого из чисел, а у тебя d>s
Универсальное решение для любого массива (на форме ListBox1 и Button1), может не оптимальное, но работает:
VB.NET
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
    Public A() As Integer = {5, 9, 7, 11} ' здесь записать массив чисел.
    Public Smax As Integer = 7 ' здесь значение S
    Public B(0) As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ReDim B(A.Length - 1)
        Dim tS As Integer
        For i = 0 To A.Length - 1
            B(i) = 1
        Next
        For S = 1 To Smax
            For K = 0 To A.Length - 1
                For j = 1 To A(K)
                    B(K) = j
                    tS = 0
                    For z = 0 To A.Length - 1
                        tS += B(z)
                    Next
                    If tS = S * (A.Length - 1) Then
                        Dim txt = "s=" & S
                        For z = 0 To A.Length - 1
                            txt = txt & ", a(" & z & ")=" & B(z)
                        Next
                        ListBox1.Items.Add(txt)
                    End If
                Next
            Next
        Next
        If ListBox1.Items.Count = 0 Then ListBox1.Items.Add("Решения нет")
    End Sub
Добавлено через 27 минут
Немного ошибся...
10-я строка должна выглядеть так:
VB.NET
1
 For S = A.Max + 1 To Smax
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 11:11 10
Вообще-то Smax>=n*(n-1) для существования решений, где n кол-во членов, а в первоначальном условии стояло Smax=7
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
27.04.2017, 11:26 11
Согласен.
И мое решение, кстати, не совсем корректно работает, нашел ошибку
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 13:39 12
Что-то не работает. При A() As Integer = {5, 9, 7} и Smax As Integer = 7 пишет, что решений нет, хотя S = 6, А0=1, А1=1, А2=1

Добавлено через 3 минуты
Тут похоже для универсализма в сторону рекурсии смотреть надо...

Добавлено через 2 часа 6 минут
Надумал оригинальное решение

VB.NET
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
        Dim A() As Integer = {5, 9, 7} ' здесь записать массив чисел.
        Dim Smax As Integer = 7 ' здесь значение S
 
        Dim s, sstart, result As String
        s = ""
        sstart = ""
 
        If Smax < A.Length * (A.Length - 1) Then
            ListBox1.Items.Add("Решения нет")
            Exit Sub
        End If
        For i = 0 To UBound(A)
            s += A(i).ToString
            sstart += "1"
        Next
 
        Dim ar(UBound(A)) As Integer
        For i = CLng(sstart) To CLng(s)
            Dim sum As Integer = 0
            Dim pr As Boolean = False
            For j As Integer = i.ToString.Length To 1 Step -1
                If (CInt(Mid(i.ToString, j, 1)) > CInt(Mid(s, j, 1))) Or (CInt(Mid(i.ToString, j, 1)) = 0) Then
                    pr = True
                    Exit For
                Else
                    ar(j - 1) = CInt(Mid(i.ToString, j, 1))
                End If
            Next
            If pr Then Continue For
            If ar.Sum * UBound(ar) <= Smax Then
                result = ""
                For j = 0 To UBound(ar)
                    result += ", A(" & j & ")=" & ar(j)
                Next
                result = "s=" & ar.Sum & result
                ListBox1.Items.Add(result)
            End If
        Next
Один минус - работает только если An находятся в диапазоне от 0 до 9
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
27.04.2017, 15:36 13
Еще один вариант решения, немного через ж.., но вроде работает правильно.
Сначала формируется матрица со всеми возможными комбинациями, затем анализируется матрица по строкам, суммируя столбцы, как то так.
Например при условии А = {3,2} будет сформирован массив В={{1,1}, {1,2}, {2,1}, {2,2}, {3,1}, {3,2}}, каждый элемент которого будет проверяться на условие s*(n-1)=(sum(B(...))

Кликните здесь для просмотра всего текста
VB.NET
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
Public Class Form1
    Public A() As Integer = {12, 14, 13, 11}
    Public Smax As Integer = 15
    Public B(0, 0) As Integer
    Public tS As Integer
    Public bool As Boolean
    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Integer = 1 ' количество вариантов всего
        For k = 0 To A.Length - 1
            n = n * A(k)
        Next
        ReDim B(A.Length - 1, n)
        For i = 0 To A.Length - 1
            mas(i)
        Next
        For s = 1 To Smax
            For j = 1 To n
                tS = 0
                For i = 0 To A.Length - 1
                    tS += B(i, j)
                Next
                bool = True
                For z = 0 To A.Length - 1
                    If s <= B(z, j) Then bool = False
                Next
                If bool And tS = s * (A.Length - 1) Then
                    Dim txt = "s=" & s
                    For z = 0 To A.Length - 1
                        txt = txt & ", a(" & z & ")=" & B(z, j)
                    Next
                    ListBox1.Items.Add(txt)
                End If
            Next
        Next
        If ListBox1.Items.Count = 0 Then ListBox1.Items.Add("Решения нет")
    End Sub
    Public Sub mas(ByVal i As Integer)
        Dim n As Integer = 1 ' количество вариантов после
        For k = i + 1 To A.Length - 1
            n = n * A(k)
        Next
        Dim n2 As Integer = 1 ' количество вариантов до
        For k = 0 To i - 1
            n2 = n2 * A(k)
        Next
        For d = 1 To n2
            For z = 1 To A(i)
                For x = 1 To n
                    B(i, ((d - 1) * A(i) + (z - 1)) * n + x) = z
                Next
            Next
        Next
    End Sub
 
End Class


Добавлено через 9 минут
Цитата Сообщение от MickeS Посмотреть сообщение
решений нет, хотя S = 6, А0=1, А1=1, А2=1
Должно же быть s*2=a1+a2+a3. При твоих заданных параметрах решение будет например s=3, a1=2, a2=2, a3=2
0
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 10
27.04.2017, 18:21  [ТС] 14
Я прошу прощения что вмешиваюсь в Вашу дискуссию, но дело в том что этот "полином" или многочлен существует именно в том виде в каком я его описал
s*(n - 1) = a(1) + a(2) + a(3) + .. +a(n)
где s - точная сумма элементов полинома в количестве n
а(1), а(2) и тд - елементы (члены) заданнх областей
Сам полином был получен практическим путём.
Пример конкретной задачи
s - измняется в диапозоне от 0 до 36
A - изменяется в диапозоне от 0 до 27
B - изменяется в диапозоне от 0 до 27
C - изменяется в диапозоне от 0 до 27
D - изменяется в диапозоне от 0 до 27
это значения,которые могут принимать члены полинома
A, B, C, D не могут превышать значение s
для конкретного решения я выбираю часть диапозона и ищу в выбранном диапозоне решение на соответствие этим услоиям
s*3 = A + B + C + D
И естественно это положительные целые числа.
предположим я выбрал след диапозоны
s = 11 to 23
A = 12 to 16
B = 8 to 21
C = 15 to 24
D = 7 to 17
Из этих значений нужно выделить те, которые соответствуют указанным условиям
Ещё раз приношу свои извинения за вмешательство в дискуссию
И огромное спасибо за Ваш инерес к проблеме

Добавлено через 34 минуты
Если позволите несколько замечаний.
MickeS Вы действительно , во всяком случае на мой взгляд, очень элегантно расписали задачу УНИЧТОЖИВ одну переменную. Но Вы уничтожили как раз s. А с этой переменной, мне кажется, должны начинаться вычесления, потому что от неё как бы зависят остальные. Но именно поэтому Вы от неё и ибавились!!!!?????
По поводу матриц, как бы некоторые неудобства. Матрицы очень жёсткие конструкции и в них сложнее делать настройку.
Например из приведённого примера я искал следующий результат
s = 23 A = 16 B = 19 C = 17 D = 17
А верхнюю границу для А явыбрал 14
Изменяя границы выбранных диапозонов можно исследовать диапозон. Предположим добавить по единичке сверху или раздвинуть на единичку в низ любой из диапозонов. Для матрицы это будет чуть чуть грамоздко.
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 18:47 15
Ну, кажется итоговая прога для полинома с четырмя членами

VB.NET
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
Dim Amin As Integer = 12
        Dim Amax As Integer = 16
        Dim Bmin As Integer = 8
        Dim Bmax As Integer = 21
        Dim Cmin As Integer = 15
        Dim Cmax As Integer = 24
        Dim Dmin As Integer = 7
        Dim Dmax As Integer = 17
        Dim Smin As Integer = 11 'Минимальное S
        Dim Smax As Integer = 23 'Максимальное S
        Dim st As String = ""
 
        For a As Integer = Amin To Amax
            For b As Integer = Bmin To Bmax
                For c As Integer = Cmin To Cmax
                    For d As Integer = Dmin To Dmax
                        If (a <= Smax) And (b <= Smax) _
                            And (c <= Smax) And (d <= Smax) _
                            And (((a + b + c + d) Mod 3) = 0) _
                            And ((((a + b + c + d) / 3)) >= Smin) And ((((a + b + c + d) / 3)) <= Smax) Then
                            st = "s=" & (a + b + c + d) / 3 & ", A=" & a & ", b=" & b & ", c=" & c & ", d=" & d
                            ListBox1.Items.Add(st)
                        End If
                    Next
                Next
            Next
        Next
        If st.Length = 0 Then ListBox1.Items.Add("Решений нет")

А зачем там переменная S? Она вычисляется по формуле (a + b + c + d) / 3, а да s-целое. Мы просто перебираем ВСЕ возможные варианты и оставляем только те, которые попадают в указанные диапазоны. Тупо, в лоб, однако чёто лучше в голову не идёт.
Интересная задачка, однако! Если не секрет - из какой проблемы такое вылезло?

Добавлено через 4 минуты
Вернее в общем случае S=(A0+A1+...+An)/(n-1), причём S-целое
0
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 10
27.04.2017, 20:06  [ТС] 16
пробую прогнать прогу даёт ошибку
Severity Code Description Project File Line Suppression State
Error BC30451 'ListBox1' is not declared. It may be inaccessible due to its protection level. SOLUTION C:\Users\Dmitri\Desktop\start\SOLUTION\SOLUTION\Module1.vb 25 Active


Severity Code Description Project File Line Suppression State
Error BC30451 'ListBox1' is not declared. It may be inaccessible due to its protection level. SOLUTION C:\Users\Dmitri\Desktop\start\SOLUTION\SOLUTION\Module1.vb 31 Active

На счёт переменной s. Умножать легче чем делить. И при умножении всегда будет целое число, чего не будет при делении. По сути это как бы фильтр.
В общем виде это выглядит так.
Есть четыре НЕЗАВИСИМЫХ множества которые составляют одно событие. Пересечение этих множеств есть истинное значение этого события.
У этого полинома или многочлена нет имени если хотите смело назовите его своим именем. Я не против.

Добавлено через 3 минуты
System.NullReferenceException occurred
HResult=0x80004003
Message=Object variable or With block variable not set.
Source=Microsoft.VisualBasic
StackTrace:
at Microsoft.VisualBasic.CompilerServices.Symbols.Container..ctor(Object Instance)
at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
at SOLUTION.Module1.Main() in C:\Users\Dmitri\Desktop\start\SOLUTION\SOLUTION\Module1.vb:line 26
Что-то не так

Добавлено через 18 минут
прога выдала неправильный результат
s = 14 a = 12 b = 8 c = 15 d = 7
и зависла
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 20:24 17
Лучший ответ Сообщение было отмечено tutodin как решение

Решение

Если у Вас консольное приложение, то вместо
VB.NET
1
ListBox1.Items.Add(st)
пишем
VB.NET
1
Console.WriteLine(st)
и вместо
VB.NET
1
If st.Length = 0 Then ListBox1.Items.Add("Решений нет")
пишем
VB.NET
1
2
If st.Length = 0 Then Console.Write("Решений нет")
        Console.ReadLine()

И почему не правильный? 12+8+15+7=42, 42/3=14 Всё верно.
1
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
27.04.2017, 20:37 18
Если не нравится предложенное мной решение с дополнительным массивом, то только через рекурсию. И не факт, что получится правильный результат.
Ниже универсальное решение для любой размерности.
В первую строку задавайте нижние границы, во вторую - верхние. Smin и Smax - соответственно минимальное и максимальное значение S.
Здесь для твоего примера
s = 11 to 23
A = 12 to 16
B = 8 to 21
C = 15 to 24
D = 7 to 17
Выдает 1093 результата.
VB.NET
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
    Public Am() As Integer = {12, 8, 15, 7}
    Public A() As Integer = {16, 21, 24, 17}
    Public Smin As Integer = 11
    Public Smax As Integer = 23
    Public B(0, 0) As Integer
    Public tS As Integer
    Public bool As Boolean
    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Integer = 1 ' количество вариантов всего
        For k = 0 To A.Length - 1
            n = n * ((A(k) - Am(k)) + 1)
        Next
        ReDim B(A.Length - 1, n)
        For i = 0 To A.Length - 1
            Dim n1 As Integer = 1 ' количество вариантов после
            For k = i + 1 To A.Length - 1
                n1 = n1 * ((A(k) - Am(k)) + 1)
            Next
            Dim n2 As Integer = 1 ' количество вариантов до
            For k = 0 To i - 1
                n2 = n2 * ((A(k) - Am(k)) + 1)
            Next
            For d = 1 To n2
                For z = 0 To A(i) - Am(i)
                    For x = 1 To n1
                        B(i, ((d - 1) * ((A(i) - Am(i)) + 1) + z) * n1 + x) = z + Am(i)
                    Next
                Next
            Next
        Next
        For s = Smin To Smax
            For j = 1 To n
                tS = 0
                For i = 0 To A.Length - 1
                    tS += B(i, j)
                Next
                bool = True
                For z = 0 To A.Length - 1
                    If s <= B(z, j) Then bool = False
                Next
                If bool And tS = s * (A.Length - 1) Then
                    Dim txt = "s=" & s
                    For z = 0 To A.Length - 1
                        txt = txt & ", a(" & z & ")=" & B(z, j)
                    Next
                    ListBox1.Items.Add(txt)
                End If
            Next
        Next
        If ListBox1.Items.Count = 0 Then ListBox1.Items.Add("Решения нет")
    End Sub
Добавлено через 1 минуту
Цитата Сообщение от MickeS Посмотреть сообщение
12+8+15+7=42, 42/3=14 Всё верно.
Не верно. сумма (S = 14) меньше одного из элементов (С = 15).
1
0 / 0 / 0
Регистрация: 26.04.2017
Сообщений: 10
27.04.2017, 20:39  [ТС] 19
в полученном ответе с 15 а s 14
0
12 / 12 / 2
Регистрация: 24.02.2013
Сообщений: 41
27.04.2017, 20:56 20
Вы правы, этот момент я пропустил...
Строки
VB.NET
1
2
3
4
If (a <= Smax) And (b <= Smax) _
                            And (c <= Smax) And (d <= Smax) _
                            And (((a + b + c + d) Mod 3) = 0) _
                            And ((((a + b + c + d) / 3)) >= Smin) And ((((a + b + c + d) / 3)) <= Smax) Then
надо заменить на
VB.NET
1
2
3
4
                        If (((a + b + c + d) Mod 3) <> 0) Then Continue For
                        If (a < ((a + b + c + d) / 3)) And (b < ((a + b + c + d) / 3)) _
                            And (c < ((a + b + c + d) / 3)) And (d < ((a + b + c + d) / 3)) _
                            And ((((a + b + c + d) / 3)) >= Smin) And ((((a + b + c + d) / 3)) <= Smax) Then
Тоже выдаёт 1093 варианта
2
27.04.2017, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2017, 20:56
Помогаю со студенческими работами здесь

Сколько существует разных наборов значений логических переменных, которые удовлетворяют всем перечисленным ниже условиям
Сколько существует различных наборов значений логических переменных x1, x2, ... x8, которые...

Какими будут значения переменных a и b после выполнения операторов
Решение задач 1. Дана последовательность операторов: a := 1; b := 1; while a + b &lt; 8 do Begin a...

Определить, какими будут значения переменных p и d после выполнения операторов
1. Определить, какими будут значения переменных p и d после выполнения операторов. p:=true; d:=l; ...

Определите, какими будут значения переменных p и d после выполнения операторов
Определите, какими будут значения переменных p и d после выполнения операторов: p:=true; d:=1;...


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

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