a.inject(Hash.new(0)) { |hash, id| hash[id] += 1; hash }.invert.min.last
h = a.inject(Hash.new(0)) { |hash, id| hash[id] += 1; hash }
Hash[h.select { |key, val| val == h.values.min }].keys
Деление с остатком (% или modulo) есть отыскание наибольшего целого числа (z), которое в произведении с делителем (b) дает число (q – называется неполным частным), не превышающее делимое (a). Разность между делимым (a) и неполным частным (q) называется остатком от деления (r). Он всегда меньше делителя.
int a = 23; int b = 5;
int z = a / b; // 4 - целочисленное деление
// тоже самое, но через цикл
for (int count = a; count >= b; count -= b) z++; // 4
int q = b * z; // 20 < 23 - ответ на вопрос
int r = a - q; // 3 < 5
// все действия можно записать для Си
int r = a % b; // 3
Option Explicit
Option Base 1
'123456789012345678901234567890123456h8nor@ya567890123456789012345678toster56789
Function CRC_ITN(ByVal ITN12orTIN10 As Double) As Boolean ' Проверка ИНН
Dim FactorSum() As Variant, i As Integer, n As Byte, s As Integer
FactorSum = Array(3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8)
n = Len(CStr(ITN12orTIN10)) ' По длине определяем: Физ или Юр лицо
If n - 1 > UBound(FactorSum) Then Exit Function ' False, если больше 12 цифр
For i = n - 1 To 1 Step -1
s = s + CByte(Mid(ITN12orTIN10, i, 1)) * FactorSum(12 - n + i)
Next i: i = (s \ 11) * 11
If Right(ITN12orTIN10, 1) = Right(s - i, 1) Then CRC_ITN = True
If n = 12 Then If Not CRC_ITN(Left(ITN12orTIN10, n - 1)) Then CRC_ITN = False
End Function
Есть график где X лежит между 1...100 и Y тоже может принимать значения от 1 до 100. Так вот, когда X достигнет 100, то и Y должен быть примерно на уровне 100y = 18.88 * ( ln(x) + ln(2) )
методы гарантированной проверки
Dim y as byte, f as double
' ... цикл "For y" будет вложен в цикл: For x = 2 To 6
For y = 1 To 7
f = f + y
Next y