Dim N As Long, M As Long, A As Integer Dim strN1 As String, LngN1 As Long, i As Integer Randomize Print "Введите число N от 0 до 1 миллиарда: "; Input N A = Int(Rnd (1)*14) + 2 ' Случайно выбираем основание от 2 до 16 ' Зашифровываем введенное число со случайным основанием i = 0: strN1 = "" Do While N > 0 M = N Mod A If M = 10 Then strN1 = "A" & Trim(strN1) ElseIf M = 11 Then strN1 = "B" & Trim(strN1) ElseIf M = 12 Then strN1 = "C" & Trim(strN1) ElseIf M = 13 Then strN1 = "D" & Trim(strN1) ElseIf M = 14 Then strN1 = "E" & Trim(strN1) ElseIf M = 15 Then strN1 = "F" & Trim(strN1) Else strN1 = Trim(Str(M)) & Trim(strN1) End If N = Int (N / A) i = i + 1 Loop Print "Число N с неизвестным основанием А: " & strN1 ' Зашифровали число, теперь подбираем неизвестное основание LngN1 = 0 For A = 2 To 16 For i = 1 To Len(strN1) M = Val (Mid (strN1, Len(strN1) - i + 1, 1)) If Trim (Str (M)) = "A" Then LngN1 = LngN1 + 10*A^(i-1) ElseIf Trim (Str (M)) = "B" Then LngN1 = LngN1 + 11*A^(i-1) ElseIf Trim (Str (M)) = "C" Then LngN1 = LngN1 + 12*A^(i-1) ElseIf Trim (Str (M)) = "D" Then LngN1 = LngN1 + 13*A^(i-1) ElseIf Trim (Str (M)) = "E" Then LngN1 = LngN1 + 14*A^(i-1) ElseIf Trim (Str (M)) = "F" Then LngN1 = LngN1 + 15*A^(i-1) Else LngN1 = LngN1 + M*A^(i-1) End If Next i If LngN1 = N Then Exit For Next A Print "Неизвестное основание А = " & A End
Первое: Для хранения на один пиксель 1 цвет из 65536 цветов достаточно 2^16=65536 - 16 Бит информации или 2 Байта. Изображение имеет 640*350 = 224 000 пикселей. Одно изображение требует для хранения 224 000*2 = 448 000 Байт информации. Следовательно для хранения 2 страниц нужно 448 000*2/1024 = 875 КБайт
Второе: По формуле где D – частота дискретизации (Гц), T – время звучания или записи звука, I - разрядность регистра (разрешение), n - количество каналов.
D = 44100 (Гц) T = 2*60 = 120 (cек) I = 16 (бит) n = 2 - стерео
Dim strN1 As String, LngN1 As Long, i As Integer
Randomize
Print "Введите число N от 0 до 1 миллиарда: ";
Input N
A = Int(Rnd (1)*14) + 2 ' Случайно выбираем основание от 2 до 16
' Зашифровываем введенное число со случайным основанием
i = 0: strN1 = ""
Do While N > 0
M = N Mod A
If M = 10 Then
strN1 = "A" & Trim(strN1)
ElseIf M = 11 Then strN1 = "B" & Trim(strN1)
ElseIf M = 12 Then strN1 = "C" & Trim(strN1)
ElseIf M = 13 Then strN1 = "D" & Trim(strN1)
ElseIf M = 14 Then strN1 = "E" & Trim(strN1)
ElseIf M = 15 Then strN1 = "F" & Trim(strN1)
Else
strN1 = Trim(Str(M)) & Trim(strN1)
End If
N = Int (N / A)
i = i + 1
Loop
Print "Число N с неизвестным основанием А: " & strN1
' Зашифровали число, теперь подбираем неизвестное основание
LngN1 = 0
For A = 2 To 16
For i = 1 To Len(strN1)
M = Val (Mid (strN1, Len(strN1) - i + 1, 1))
If Trim (Str (M)) = "A" Then
LngN1 = LngN1 + 10*A^(i-1)
ElseIf Trim (Str (M)) = "B" Then LngN1 = LngN1 + 11*A^(i-1)
ElseIf Trim (Str (M)) = "C" Then LngN1 = LngN1 + 12*A^(i-1)
ElseIf Trim (Str (M)) = "D" Then LngN1 = LngN1 + 13*A^(i-1)
ElseIf Trim (Str (M)) = "E" Then LngN1 = LngN1 + 14*A^(i-1)
ElseIf Trim (Str (M)) = "F" Then LngN1 = LngN1 + 15*A^(i-1)
Else
LngN1 = LngN1 + M*A^(i-1)
End If
Next i
If LngN1 = N Then Exit For
Next A
Print "Неизвестное основание А = " & A
End