- 1
Бесконечный оффтоп имени Борманда #4
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
Бесконечный оффтоп имени Борманда #4
#1: https://govnokod.ru/25864 https://govnokod.xyz/_25864
#2: https://govnokod.ru/25921 https://govnokod.xyz/_25921
#3: https://govnokod.ru/26544 https://govnokod.xyz/_26544
+1
from numba import jit
def mults_no_jit(start, end, step):
min_i = min(start, end)
for i in range(start, end, step):
if i < min_i:
return
for j in range(i, end, step):
x = i * j
x_orig = x
x_reverse = 0
while x > 0:
x_reverse *= 10
x_reverse += x % 10
x //= 10
if x_orig == x_reverse:
min_i = max(min_i, j)
yield x_orig
break
@jit(nopython=True)
def mults_jit(start, end, step):
min_i = min(start, end)
for i in range(start, end, step):
if i < min_i:
return
for j in range(i, end, step):
x = i * j
x_orig = x
x_reverse = 0
while x > 0:
x_reverse *= 10
x_reverse += x % 10
x //= 10
if x_orig == x_reverse:
min_i = max(min_i, j)
yield x_orig
break
print(timeit.timeit('max(mults_no_jit(999, 99, -1))', globals=globals(), number=100))
# 4.2907474 секунды
print(timeit.timeit('max(mults_jit(999, 99, -1))', globals=globals(), number=100))
# 0.1662201 секунд первый запуск, 0.0333973 последующие
Теперь я за «Numba».
+1
package com.company;
public class Main {
public static void main(String[] args) {
int answer = 0;
for (int i = 100; i < 1000; i++){
for (int j = 100; j < 1000; j++){
int result = i * j;
String str = String.valueOf(result); //convert
String revers = new StringBuffer(str).reverse().toString(); //revers
int newb = Integer.parseInt(revers); //convert
if (newb == result){
int answer001 = result;
if (answer001 > answer) answer = answer001;
}
}
}
System.out.println(answer);
}
}
реализация четвёртой задачки из проекта эйлера
+1
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| БИТ_Отель_ДоговорыЭквайринга.Ссылка
|ИЗ
| Справочник.БИТ_Отель_ДоговорыЭквайринга КАК БИТ_Отель_ДоговорыЭквайринга
|ГДЕ
| БИТ_Отель_ДоговорыЭквайринга.ДоговорВзаиморасчетов = &ДоговорВзаиморасчетов";
Запрос.УстановитьПараметр("ДоговорВзаиморасчетов", СтруктураПарам.БИТ_Отель_ДоговорЭквайринга.ДоговорВзаиморасчетов);
Результат = Запрос.Выполнить().Выгрузить();
Струк = Новый Структура;
Струк.Вставить("ВидОплаты", ВидОплаты);
Если Результат.Количество() Тогда
РезОтбора = Результат[0].Ссылка.ТарифыЗаРасчетноеОбслуживание.НайтиСтроки(Струк);
Если РезОтбора.Количество() Тогда
ПроцентТорговойУступки = РезОтбора[0].ПроцентТорговойУступки;
Иначе
ПроцентТорговойУступки = 0;
Предупреждение("Не указан процент торговой уступки!");
ЭлементыФормы.ПанельДокумента.ТекущаяСтраница = ЭлементыФормы.ПанельДокумента.Страницы.Эквайринг;
ЭлементыФормы.ПроцентТорговойУступки.ОтметкаНезаполненного = Истина;
ЭлементыФормы.СуммаТорговойУступки.ОтметкаНезаполненного = Истина;
ТекущийЭлемент = ЭлементыФормы.ПроцентТорговойУступки;
КонецЕсли;
Иначе
ПроцентТорговойУступки = 0;
Предупреждение("Не указан процент торговой уступки!");
ЭлементыФормы.ПанельДокумента.ТекущаяСтраница = ЭлементыФормы.ПанельДокумента.Страницы.Эквайринг;
ЭлементыФормы.ПроцентТорговойУступки.ОтметкаНезаполненного = Истина;
ЭлементыФормы.СуммаТорговойУступки.ОтметкаНезаполненного = Истина;
ТекущийЭлемент = ЭлементыФормы.ПроцентТорговойУступки;
КонецЕсли;
уже шестой год я работаю с этой "конфой", жаль что ее целиком нельзя сюда выложить, там, не считая исходной бух части, сплошной креатив каких то ДЦП на обеденной перемене классе во втором.
+1
// Both set_time_limit(...) and ini_set('max_execution_time',...); won't count the time cost of sleep,
// file_get_contents,shell_exec,mysql_query etc, so i build this function my_background_exec(),
// to run static method/function in background/detached process and time is out kill it:
// my_exec.php:
<?php
function my_background_exec($function_name, $params, $str_requires, $timeout=600)
{$map=array('"'=>'\"', '$'=>'\$', '`'=>'\`', '\\'=>'\\\\', '!'=>'\!');
$str_requires=strtr($str_requires, $map);
$path_run=dirname($_SERVER['SCRIPT_FILENAME']);
$my_target_exec="/usr/bin/php -r \"chdir('{$path_run}');{$str_requires} \\\$params=json_decode(file_get_contents('php://stdin'),true);call_user_func_array('{$function_name}', \\\$params);\"";
$my_target_exec=strtr(strtr($my_target_exec, $map), $map);
$my_background_exec="(/usr/bin/php -r \"chdir('{$path_run}');{$str_requires} my_timeout_exec(\\\"{$my_target_exec}\\\", file_get_contents('php://stdin'), {$timeout});\" <&3 &) 3<&0";//php by default use "sh", and "sh" don't support "<&0"
my_timeout_exec($my_background_exec, json_encode($params), 2);
}
// ...
Шедевр (заплюсованный) из https://www.php.net/manual/ru/function.set-time-limit.php.
+1
var xc = /^true$/.test("false");
var yc = xc;
google ad manager (gpt.js)
+1
const regExp = new RegExp(filterValue.toLowerCase())
return templates.filter((tmpl) => regExp.test(tmpl.title.toLowerCase()))
Высрал "синьор", "тимлид" с большим опытом и головой.
+1
Вы уронили продуктовое приложение и SSH-доступ изнутри виртуалки к нему,
все сессии потеряны. Доступ к виртуалке надо просить через заказчика, и это косяк.
Ваши действия?
+1
// Это означает что, например, поведение следующего кода не определено:
fn cast(x: f32) -> u8 {
x as u8
}
fn main() {
let f = 300.0;
let x = cast(f);
println!("x: {}", x);
}
https://habr.com/ru/post/511546/
> Это мы называем ошибкой «корректности» (ведь unsafe кода тут нет) — то есть ошибка, когда компилятор делает неправильные вещи. Мы отмечаем их в нашем трекере как I-unsound, и относимся к ним очень серьёзно.
+1
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import static java.lang.System.*;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
public class Rep implements CharSequence
{
String str = null;
int len;
char base;
public Rep(char x, int count)
{
this.len = count;
this.base = x;
}
@Override
public int length()
{
return len;
}
@Override
public char charAt(int index)
{
return base;
}
@Override
public CharSequence subSequence(int beginIndex, int endIndex)
{
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
if (endIndex > this.len) {
throw new StringIndexOutOfBoundsException(endIndex);
}
int subLen = endIndex - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return ((beginIndex == 0) && (endIndex == this.len)) ? this
: new Rep(this.base, subLen);
}
@Override
public String toString()
{
return null!=str ? str : (this.str = new String(new char[]{base}).repeat(len));
}
public static void main(String... args)
{
long ns = 0L;
Pattern lazy = Pattern.compile("^(11+?)\\1+$");
Pattern greedy = Pattern.compile("^(11+?)\\1+$");
ns=nanoTime(); lazy .matcher(new Rep('1',100160079)).matches(); out.println( NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); greedy.matcher(new Rep('1',100160079)).matches();out.println( NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); greedy.matcher(new Rep('1',1165139)).matches();out.println( NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); "1".repeat( 100160079 ).matches("^(11+?)\\1+$") ; out.println("Lazy String:"+ NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); "1".repeat( 100160079 ).matches("^(11+)\\1+$") ; out.println("Greedy String:"+ NANOSECONDS.toMillis(nanoTime()-ns));
}
}
Так как в «Йажа» регулярки работают не на строках, а на интерфейсе CharSequence https://docs.oracle.com/javase/8/docs/api/index.html?java/lang/CharSequence.html
Решил что можно сделать тупую реализацию CharSequence для строк из повторяющегося символа.
https://ideone.com/8eYFU7