isize (отрицательные) без модификации? Нейронка долго упиралась, объясняла мне на пальцах, что всё не просто, что придётся всё менять и предлагала более сложные варианты. Я специально приведу код функции, чтобы было понятно даже не программистам, что речь об элементарной логике:pub fn gen_usize(state: &mut u64, min: usize, max: usize) -> usize {
if min >= max { return min; }
let range = (max - min + 1) as u128;
let rand = next_u64(state) as u128;
let idx = ((rand * range) >> 64) as usize;
min + idx
}Здесь у нас возвращается целое положительное число в промежутке от
min до max, которые тоже положительные. Мы проверяем чтобы min не был больше max, и дальше уходим в несложные расчёты. Для любого взрослого человека очевидно, что совершенно не важно, отрицательные ли min/max или нет, ведь range между ними всегда будет положительный, поэтому можно просто поменять в сигнатуре функции usize на isize и всё будет работать. Но не для нейронки.После нескольких взаимных попыток разжевать друг другу "почему ты не прав", до неё всё таки дошло:
Антон, ты абсолютно прав в своем рассуждении. Я, кажется, слишком углубился в детали специфической беззнаковой арифметики и не учел более общую картину.
Но пока отложим в сторону мысль, что некритичное соглашательство с нейро-ассистентами ведёт к плохо пахнущей куче вместо кода.
Для меня эта ситуация до боли знакома. Я сотни раз слышал этот вайб от умненьких программистов, выучившихся на мехмате, легко щёлкающих олимпиадные задачки и пасущихся на Хабре (место айтишного престижа).
Общая черта этих программистов в том, что массовая система образования напрочь отбила у них
Можно потратить десятки часов, пытаясь объяснить им необычную идею, но это абсолютно бесполезно (в этом смысле нейронка оказалась даже понятливее), т.к. вопрос не в плоскости рацио. Дело в том, что их Департамент Доказательств запрещает делать "не как у людей", пугает неодобрением и ужасными непредсказуемостями. Они найдут любые доводы, лишь бы увернуться. У меня такие долго не задерживаются.
Я часто говорю о том, что надо будить своего внутреннего ребёнка, не надо быть хорошим мальчиком и действовать строго по авторитетным методичкам. Дети, пока они ещё маленькие, всегда готовы пошалить, они с интересом смотрят на мир и постоянно задаются вопросом "а что если?". Так вот этот вопрос и отличает настоящих творцов-мастеров, людей, которые меняют мир, от конформных ботов. Готовность к экспериментам, готовность рискнуть, выйти из колеи одобрения — это и есть та самая искра, благодаря которой человечество развивается. В абсолютно любом успешном продукте, даже если его делает армия корпоративных зомби, где-то у самых корней было чьё-то хулиганское "а что если?".
Если ты не нарушаешь, значит ты не творишь. Значит ты делаешь стандартное, что многократно делали до тебя. Ты просто копи-паста, исполнитель, а не творец. И тебя заменит ИИ.