Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование[11]

var  

282 пользователя проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

madvlaydin написал 3 часа назад:

затем что ты пидарас напишешь шифратор или рм -рф, а контейнер в докере прибил и досвидание 

у меня нет диссоциативного расстройства личности :jokerge:

Поделиться сообщением


Ссылка на сообщение
Kurku написал 10 часов назад:

настраивать докер ради такого и собирать свои пакеты эт пиздец

да, но проблема в том что учит пхп еще больший пиздец для этого


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

  

UglyBastard написал 3 часа назад:
Finesku написал 3 часа назад:
UglyBastard написал 4 часа назад:
Kurku написал 7 часов назад:
madvlaydin написал 10 часов назад:
Kurku написал 11 часов назад:

настраивать докер ради такого и собирать свои пакеты эт пиздец

сразу видно ты ебучий студент 0 опыта в коммерческой разработке 

 

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

чувак я знаю что такое контейнеры

 

у нас в унике автотесты к домашкам в контейнерах поставляются + я сам писал докерфайлы ручками

 

но это оверкил ради того чтобы написать скрипт на коленке, который будет исполняться на одной единственной машине

 

цель которого визуализировать какие-то данные и операции

 

ну вот нахуя если я могу просто

 

nix-shell -p php

touch index.php

php -S localhost:8080 &

 

ну вот зачем усложнять себе жизнь на ровном месте

Чтобы не ставить лишнюю зависимость на основную операционку. Пусть лучше всё в раздельных докерах лежит

ты первую строчку где он про nix написал не читал или не понимаешь, что она делает?

Я не говорю про какие-нибудь конфликты зависимостей. Я говорю про то, что ничего лишнего на компе не стоит. А то под каждый пет придется что-нибудь свое накатывать и так и будут копиться какие-нибудь пакеты, которые уже давно не нужны

при использовании nix у тебя не будут копиться пакеты локальные

 

Just.Doit написал 23 минуты назад:
Kurku написал 11 часов назад:

настраивать докер ради такого и собирать свои пакеты эт пиздец

да, но проблема в том что учит пхп еще больший пиздец для этого

чему учит пхп?

Поделиться сообщением


Ссылка на сообщение
(изменено)
Just.Doit написал 55 минут назад:

да, но проблема в том что учит пхп еще больший пиздец для этого

ну честно говоря учить там особо нечего

 

если у тебя был опыт баша, плюсов, джавы... и немного lua (шизосписки которые на самом деле хештаблицы)

то ты просто такой... okay

 

из этого разве что lua пореже встречается

но остальное мне кажется любой в своей жизни трогал

 

сама модель как пыха работает: запрос - ответ - смерть

не rocket science

 

экосистема тоже не сказать что сильно перегруженная или сильно бедная какая-то

куча всего есть из коробки

 

я не понимаю короче


Изменено пользователем Kurku

Поделиться сообщением


Ссылка на сообщение
(изменено)
Zhenek написал 02.11.2024 в 23:46:
mercury23 написал 02.11.2024 в 23:33:
Zhenek написал 02.11.2024 в 23:31:
mercury23 написал 02.11.2024 в 23:28:
Zhenek написал 02.11.2024 в 23:17:
mercury23 написал 02.11.2024 в 22:41:

мужики, я (пока) не погромист, и встал с задачей

 

короче задача - посчитать количество чисел от 1 до 2^63 с суммой цифр, равной 159

 

я допёр, что 2^63 это 19значное число, максимальная сумма цифр 19-значного числа это 171

18значного числа 162

17значного числа 153

 

таким образом это 18-19значные числа

 

если просто пробежать от 699 999 999 999 999 999 (минимальное 18значное число, сумма цифр которого 159) до 2^63 пробежать и посчитать сумму цифр, даже если это многопоточкой на 8 потоков на 8ядерном пека разбить, будет считаться несколько лет

 

обращался к чат гпт, он посоветовал сделать массив m*n, где m - количество цифр в числе, а n - сумма цифр в числе

и в теории этот массив можно заполнить, левый его верхний угол выглядит как-то так:

 

1    1    1     1      1      1      1    
1    2    3     4      5      6      7    
1    3    6     10   15    21    28   
1    4    10   20   35    56    84   
1    5    15   35   70    126  210  
1    6    21   56   126  252  462  

 

данное решение в ячейке [19][159] найдёт количество 19значных чисел, сумма цифр которых 159

в ячейке [18][159] найдёт количество 18значных чисел, сумма цифр которых 159

 

но если это сложить, то мы получим сумму цифр от 1 до 10^19 - 1

а 2^63 несколько меньше (на 8%, и находит 84 миллиона вместо ответа в 34 миллиона с копейками)

 

короче я встрял, 300к наносеки помогите позязя 

 

@Zhenek если поможешь хотя бы на 2/3 или даже 1/2 решить задачу, буду очень признателен

 

Откуда задача-то?

собес джуна на галеру

 

школьник спросил знакомый :omegalul:

я ему накодил подсчёт суммы цифр в цикле через рекурсию, за 3 минуты программа до 20 миллионов доползла, добавил к рекурсии кеш рекурсии, сильно быстрее не стало:ponimau: 

сказал что подумаю на выходных и вот, сижу 5й час в ахуе 

Показать больше  

Бля. Я к сожалению в таком не спец, однако верю, что это именно про то, что тебе нужно

 

https://stackoverflow.com/questions/22394257/how-to-count-integers-between-large-a-and-b-with-a-certain-property?noredirect=1&lq=1

сяп, ща почитаю

Сам уже решай, на 1/2 или на 2/3 помог :onneponimaet:

короче накатал код по модели с твоей ссылки

начнём с модели:

 

к примеру для чисел меньших 234 ищем сумму 6 

первая цифра 2. - значит числа меньшие имеют первую цифру 0, 1 или 2

 

для 0 и 1 можем крутить следующую цифру от 0 до 9

для 2 только меньше или равно следующей цифры (0-3)

 

0-[0..9] - последняя, третья цифра так же может быть любой, однако если мы превысили , то можно не смотреть, чё там дальше

1-[0..9] - аналогично

2-[0..3] - тут для второй цифры 0,1,2 третья цифра может быть любой, для второй цифры, равной 3, последняя может быть только в диапазоне [0..4]

 

итого ответы типа будут

0-0-6;0-1-5;0-2-4;0-3-3;0-4-2;0-5-1;0-6-0 (итого 7 для первой цифры 0)

1-0-5;1-1-4;1-2-3;1-3-2;1-4-1;1-5-0 (итого 6 для первой цифры 1)

2-0-4;2-1-3;2-2-2;2-3-1 (больше 3 вторую цифру делать не можем) (итого 4 для первой цифры 2)

(больше 3 первую цифру делать не можем)

 

собираем дань сумму подпоследовательностей : 4+6+7 = 17

 

переходим к общему виду:

передаём в рекурсию три значения - текущую сумму, количество символов от начала (осталось длина минус пройдено) и флажок, есть ли у нас потолок в подпоследовательности или можно до 9ки крутить

 

В КОНЦЕ:

если сумма 159 - выводим 1

если не равно 159 - выводим 0

 

при этом до конца можно выйти:

если больше 159 , то 159 уже никак не получим и даже если мы до конца(!) и не дошли все равно можем выйти с нулем

 

а так если мы не в конце числа, то результат функции будет у нас количество подпоследовательностей (типа как мы 17 собрали из 4,6,7), которые дают в сумме 159

 

код на питоне какой-то такой:

from functools import *

b = str(2**63-1)

a = []
for i in range(len(b)):
    a.append(int(b[i]))

@cache
def f(s, l, fl):
    if (s > 159):
        return 0
    if l == len(a):
        return s == 159

    total = 0
    if fl == True:
        for x in range(0, a[l]):
            total += f(s + x, l + 1, False)
        x = a[l]
        total += f(s + x, l + 1, True)
    if fl == False:
        for x in range(0,10):
            total += f(s + x, l + 1, False)

    return total

print(f(0, 0, True))

 

P.S впринципе это очень похоже на код @Drakonian с абузом @cache от @UglyBastard

всем респект ещё раз!

P.S.S научите код красиво вставлять на форум как здесь хДД

Скрытый текст

 

 


Изменено пользователем mercury23

Поделиться сообщением


Ссылка на сообщение
(изменено)

кнопка есть в редакторе "код" image.png.cc92e9dc4e13534f0d8009bc9746927c.png


Изменено пользователем Kurku
mercury23 понравилось это

Поделиться сообщением


Ссылка на сообщение
Finesku написал 2 часа назад:

  

UglyBastard написал 5 часов назад:
Finesku написал 5 часов назад:
UglyBastard написал 6 часов назад:
Kurku написал 9 часов назад:
madvlaydin написал 12 часов назад:
Kurku написал 13 часов назад:

настраивать докер ради такого и собирать свои пакеты эт пиздец

сразу видно ты ебучий студент 0 опыта в коммерческой разработке 

 

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

чувак я знаю что такое контейнеры

 

у нас в унике автотесты к домашкам в контейнерах поставляются + я сам писал докерфайлы ручками

 

но это оверкил ради того чтобы написать скрипт на коленке, который будет исполняться на одной единственной машине

 

цель которого визуализировать какие-то данные и операции

 

ну вот нахуя если я могу просто

 

nix-shell -p php

touch index.php

php -S localhost:8080 &

 

ну вот зачем усложнять себе жизнь на ровном месте

Чтобы не ставить лишнюю зависимость на основную операционку. Пусть лучше всё в раздельных докерах лежит

ты первую строчку где он про nix написал не читал или не понимаешь, что она делает?

Я не говорю про какие-нибудь конфликты зависимостей. Я говорю про то, что ничего лишнего на компе не стоит. А то под каждый пет придется что-нибудь свое накатывать и так и будут копиться какие-нибудь пакеты, которые уже давно не нужны

при использовании nix у тебя не будут копиться пакеты локальные

А куда они денутся 


 

9Aa4jVY.jpeg

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
UglyBastard написал 5 минут назад:
Finesku написал 2 часа назад:

  

UglyBastard написал 5 часов назад:
Finesku написал 5 часов назад:
UglyBastard написал 6 часов назад:
Kurku написал 9 часов назад:
madvlaydin написал 12 часов назад:
Kurku написал 13 часов назад:

настраивать докер ради такого и собирать свои пакеты эт пиздец

сразу видно ты ебучий студент 0 опыта в коммерческой разработке 

 

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

чувак я знаю что такое контейнеры

 

у нас в унике автотесты к домашкам в контейнерах поставляются + я сам писал докерфайлы ручками

 

но это оверкил ради того чтобы написать скрипт на коленке, который будет исполняться на одной единственной машине

 

цель которого визуализировать какие-то данные и операции

 

ну вот нахуя если я могу просто

 

nix-shell -p php

touch index.php

php -S localhost:8080 &

 

ну вот зачем усложнять себе жизнь на ровном месте

Чтобы не ставить лишнюю зависимость на основную операционку. Пусть лучше всё в раздельных докерах лежит

ты первую строчку где он про nix написал не читал или не понимаешь, что она делает?

Я не говорю про какие-нибудь конфликты зависимостей. Я говорю про то, что ничего лишнего на компе не стоит. А то под каждый пет придется что-нибудь свое накатывать и так и будут копиться какие-нибудь пакеты, которые уже давно не нужны

при использовании nix у тебя не будут копиться пакеты локальные

А куда они денутся 

Там можно по разному настраивать, но в целом эта штука удобнее докера для управления пакетами

Поделиться сообщением


Ссылка на сообщение
(изменено)
UglyBastard написал 23 минуты назад:

А куда они денутся 

ну типа засунь в systemd таску nix-collect-garbage --delete-older-than 30d

всё старьё к которому ты месяц не прикасался будет автоматически подчищаться


Изменено пользователем Kurku

Поделиться сообщением


Ссылка на сообщение

Настраивать уже звучит хуже, чем держать Докерфайл пер проект 


 

9Aa4jVY.jpeg

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
(изменено)
Kurku написал 13 минут назад:

не ну докер тоже как бы кеш хранит

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

т.е. суть не в месте на диске а в том что установлены ли они и по умолчанию подтягиваются или нет ?

тоесть я могу запустить пыху версии 123 с пакетами версий 543, и тут же запустить выху версии 234, с теми же пакетами но версий 654 при этом без переустановки  чего-либо а просто запуская разные конфиги?


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Kurku написал 13 минут назад:

не ну докер тоже как бы кеш хранит

Эта другое!! 

 

Вообще одна из идей никс это чистота установки пакетов так что виртуальное окружение/докер контейнеры/и даже виртуализация рабочий окружений это естественное продолжение. Да и никсос в идеале можно улучшить до https://stal-ix.github.io/


 

9Aa4jVY.jpeg

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
(изменено)
Just.Doit написал 56 минут назад:
Kurku написал 1 час назад:

не ну докер тоже как бы кеш хранит

я так понимаю там ранее консерн был по поводу того что пакеты установлены в систему

суть не в месте на диске а в том что они установлены и по умолчанию подтягиваются. это так?

тоесть я могу запустить пыху версии 123 с пакетами версий 543, и тут же запустить выху версии 234, с теми же пакетами но версий 654 при этом без переустановки  чего либа а просто запуская разные конфиги?

ну да всё так

можно в одном окне запустить nix-shell -p php83, в другом nix-shell -p php81

 

и ну типа да

  ...

0image.png.220322fbf12dc9377fe4ce0b87428953.png

 

в целом я конечно продаю панацею тут

 

я nix-ом пользуюсь достаточно казуально, потому что много пакетов просто есть

и мне ничего делать не надо по-существу

но злые языки говорят есть проблемы с up-to-date документацией

когда надо всё таки что-то делать

 

я такое сильно не люблю, когда надо где-то там у людей что-то спрашивать

чот как-то я наткнулся на такое, когда с xen + qemu игрался

ну пиздец

 

у guix всё наоборот и я вот в следующий раз на поезде поеду

и думаю попробую всё таки в guix вкатиться, прочитав их мануал

тем более там guile scheme в качестве языка конфигурации


Изменено пользователем Kurku

Поделиться сообщением


Ссылка на сообщение
UglyBastard написал 1 час назад:

Вообще одна из идей никс это чистота установки пакетов так что виртуальное окружение/докер контейнеры/и даже виртуализация рабочий окружений это естественное продолжение.

из виртуализаций всяких, кстати, чо хочу попробовать

 

хочется как-нибудь купить наверное видюху которую можно безболезненно партишенить

и попробовать сделать простенькую 3d-игрулю, которая статически скомпилированная будет бегать на гипервизоре

типа как люди в 90-х делали, когда игра тупо была операционкой в которую ты можешь забутиться

 

мне кажется это достаточно забавная срань будет

Поделиться сообщением


Ссылка на сообщение
Kurku написал 54 минуты назад:

я такое сильно не люблю, когда надо где-то там у людей что-то спрашивать

чево блять? это за гранью юзаельного

нет доков и сорцы не почитать - считай что не компилирует и не работает


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)
Just.Doit написал 2 часа назад:
Kurku написал 3 часа назад:

я такое сильно не люблю, когда надо где-то там у людей что-то спрашивать

чево блять? это за гранью юзаельного

нет доков и сорцы не почитать - считай что не компилирует и не работает

да не, ну чота есть

но просто могут быть через чур суховаты (доки), а всё другое может быть устаревшей инфой (вики)

 

и ты типа пока не достигнешь просветления, не особо поймёшь как тут чо делать

 

такое случается, не так уж редко

особенно если штука была нишевой и была нишевой долго

 

условно говоря чувак который узнал о проекте давным давно

проблем вообще иметь не будет, он просто патчноуты потягивает

а вот вкатиться с нуля в это, читая чисто маны и старьё

ну бывает прям сильно неприятно

 

вот у Xen Project такая же херня

без б, можно ман почитать, но я всё таки хочу туториал какой-то человеческий

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


Изменено пользователем Kurku

Поделиться сообщением


Ссылка на сообщение
(изменено)
Kurku написал 12 часов назад:

особенно если штука была нишевой и была нишевой долго

это понятно. в скале такая каждая вторая либа.

я такую хуйню не считаю пригодной к использованию просто.

точнее это будет равноценно написанию своего  велосипеда со всеми вытекающими


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...