mglukhikh
08/30/2018, 7:16 AMmglukhikh
08/30/2018, 7:17 AMmglukhikh
08/30/2018, 7:18 AMmglukhikh
08/30/2018, 7:32 AMmglukhikh
08/30/2018, 8:31 AMmglukhikh
08/30/2018, 1:30 PMmglukhikh
09/11/2018, 8:03 AMmglukhikh
09/22/2018, 12:40 PMmglukhikh
09/22/2018, 12:40 PMyaroslav
10/19/2018, 12:11 PMStalch
04/29/2019, 6:54 AMAlexander Zdanevich
10/02/2019, 12:25 PMchervak.av
11/29/2019, 6:47 PMmglukhikh
12/02/2019, 8:10 AMchervak.av
12/17/2019, 8:22 PMfun markdownToHtmlSimple
моя программа проверяет, что если была написана не пустая строка, то значит можно ставить \n
. Проблема возникла, когда не пустая строка была 3-ей с конца в тексте, а предпоследним и последним был знак \n
(послений благополучно заигнорился). То-есть проверка на присутствие строки ранее прошла и был поставлен новый абзац, но тк. после ничего нет - этот абзац должен отсутствовать. Можно ли как-то отформатировать файл чтобы избавиться от такой проблемы или сделать что-то еще?
могу код предоставить, если нужно
задачу делал не через stackAsdzendo
02/02/2020, 4:55 PMAsdzendo
02/02/2020, 4:59 PM/**
* Средняя
*
* Найти скалярное произведение двух векторов равной размерности,
* представленные в виде списков a и b. Скалярное произведение считать по формуле:
* C = a1b1 + a2b2 + ... + aNbN. Произведение пустых векторов считать равным 0.
*/
Написал так:
un times(a: List<Int>, b: List<Int>): Int
{
var C = 0
for (i in 0 until a.size) C += a[i] * b[i]
return C
}
Все хорошо работает, но хочу переписать короткую запись.
Пишу так:
= a.zip(b).reduce(0.00) {total , next (a , b) -> total +a*b }
Не работает.
Есть кто решил эту задачку красиво в одну строчку?
Подскажите пожалуйста.Asdzendo
02/16/2020, 5:20 PMAsdzendo
02/16/2020, 5:22 PM/**
* Средняя
*
* Для заданного x рассчитать с заданной точностью eps
* sin(x) = x - x^3 / 3! + x^5 / 5! - x^7 / 7! + ...
* Нужную точность считать достигнутой, если очередной член ряда меньше eps по модулю.
* Подумайте, как добиться более быстрой сходимости ряда при больших значениях x.
* Использовать kotlin.math.sin и другие стандартные реализации функции синуса в этой задаче запрещается.
*/
// работает но не доделана - окончат вариант см sin2
fun sin(x: Double, eps: Double): Double { // pi*100 = 314 Проходит только с БинДесимал - дурдом хотя считает
print(x)
var sinx:BigDecimal = x.toBigDecimal()
var y:BigDecimal = x.toBigDecimal()
var i = 1
var iznack = -1
var fack :BigDecimal = 1.0.toBigDecimal()
var xpow:BigDecimal = x.toBigDecimal()
while((y * y) > (eps * eps).toBigDecimal()) {
fack = fack * (i+1).toBigDecimal() * (i+2).toBigDecimal()
xpow = xpow * x.toBigDecimal() * x.toBigDecimal()
y= xpow / fack
sinx = sinx + iznack.toBigDecimal() * y
i = i + 2
iznack = - iznack
// println("$y --> $eps xpow = $xpow fack = $fack sinx = $sinx")
// if (i > 250) break
}
println (" $sinx")
return sinx.toDouble()
}
fun sin2(x: Double, eps: Double): Double { // pi*100 = 314 Проходит только с БинДесимал
print(x)
var sinx: BigDecimal = x.toBigDecimal()
var y: BigDecimal = x.toBigDecimal()
var i = 1
var iznack = -1
while ((y * y) > (eps * eps).toBigDecimal()) {
y = y * (x.toBigDecimal() * x.toBigDecimal()) / ((i + 1).toBigDecimal() * (i + 2).toBigDecimal())
sinx += iznack.toBigDecimal() * y
i += 2
iznack = -iznack
// println("$y --> $eps xpow = $xpow fack = $fack sinx = $sinx")
// if (i > 250) break
}
println(" $sinx")
return sinx.toDouble()
}
Asdzendo
02/16/2020, 5:27 PMAsdzendo
02/16/2020, 5:27 PM/**
* Простая
*
* Дан номер месяца (от 1 до 12 включительно) и год (положительный).
* Вернуть число дней в этом месяце этого года по григорианскому календарю.
* Специальный Календарь КОТЛИНА не нашел - этот JAVA
*/
//Ok
fun daysInMonth(month: Int, year: Int): Int = YearMonth.of(year, month).lengthOfMonth()
// Специальный Календарь КОТЛИНА не нашел - этот JAVA
fun daysInMonth1(month: Int, year: Int): Int = LocalDate.of(year, month, 1).lengthOfMonth()
Asdzendo
02/16/2020, 5:30 PM**
* Простая
*
* Треугольник задан длинами своих сторон a, b, c.
* Проверить, является ли данный треугольник остроугольным (вернуть 0),
* прямоугольным (вернуть 1) или тупоугольным (вернуть 2).
* Если такой треугольник не существует, вернуть -1.
*/
//Ок
fun triangleKind(a: Double, b: Double, c: Double): Int =
when {
a > b + c || b > a + c || c > a + b -> -1 // это не треугольник
(c * c < a * a + b * b) && (a * a < b * b + c * c) && (b * b < a * a + c * c) -> 0 // остро
c * c > a * a + b * b || a * a > b * b + c * c || b * b > a * a + c * c -> 2 // тупо
else -> 1 // прямо
}
fun triangleKind1(a: Double, b: Double, c: Double): Int =
if ((a > b + c) || (b > a + c) || (c > a + b)) -1
else if ((c * c < a * a + b * b) && (a * a < b * b + c * c) && (b * b < a * a + c * c)) 0
else if ((c * c > a * a + b * b) || (a * a > b * b + c * c) || (b * b > a * a + c * c)) 2
else 1
Marat Akhin
02/17/2020, 4:11 PMAsdzendo
02/23/2020, 1:50 PMДмитрий Силюк
10/21/2020, 12:00 PM* Для заданного x рассчитать с заданной точностью eps
* sin(x) = x - x^3 / 3! + x^5 / 5! - x^7 / 7! + ...
* Нужную точность считать достигнутой, если очередной член ряда меньше eps по модулю
*/
Вроде бы работает, но в ходе тестов не проходит последний в котором x=100*PI
@Test
@Tag("Normal")
fun sin() {
assertEquals(0.0, sin(0.0, 1e-5), 1e-5)
assertEquals(1.0, sin(PI / 2.0, 1e-5), 1e-5)
assertEquals(0.0, sin(PI, 1e-5), 1e-5)
assertEquals(-1.0, sin(3.0 * PI / 2.0, 1e-5), 1e-5)
assertEquals(0.0, sin(100.0 * PI, 1e-5), 1e-5)
}
При расчетах получаются слишком большие числа в итоге результат выходит NaN.Slackbot
10/27/2020, 9:34 AM