Pull to refresh
2
5
Subscribers
Send message
строка длиной 16 символов — это два числа по 64 бита или четыре числа по 32 бита
то есть все данные можно вообще хранить в одном массиве интов размером [X * (2 + 4)] для вашего случая
хеш-функцию от 4 интов написать тоже несложно.
Не исключено. В военное время членовредительство квалифицируется как преступление. Именно потому что деяние становится опасным для общества. В мирное время вы скорее всего тоже бонусов не получите, по крайней мере не думаю, что страховая компания сочтет это «страховым случаем», а пенсионный фонд выпишет пенсию по утрате трудоспособности. В общем-то, я бы лично не рекомендовал бы проделывать подобные эксперименты :)
видите ли, во-первых это действительно сложно посчитать. во-вторых, часть людей не могут «вернуть кредит» — войны, преждевременные смерти, физические увечья или просто человек становится в антиобщественную позу (воры, грабители) или иным образом обществу с него нечего взять (дураки, бездельники, отшельники).

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

система несовершенная, но более совершенной я предложить не могу. есть несколько систем предупреждения антиобщественных поступков — религия, общественная мораль, законодательство.
«Преступление» и «невиновность» — не более чем интервалы на метрике оценки обществом деятельности индивидуума.

Исторически уже давно определено, что 100 убийц для общества однозначно наносят больше вреда чем 100 пекарей. Поэтому такое деяние как «убийство» отнесено к нарушениям.

Вместе с изменением жизни меняются и метки на этой метрике. Скажем, в Китае — превышение количества детей в семье является нарушением против общества. В наших условиях представители общества (власть) решила, что содержание казино наносит вред обществу. Я лично никак не высказываю здесь на хабре свое отношение к этому решению.
> До 18 — безусловно. А с этого момента, извините, у вас нет права мешать людям делать, что они хотят.

Совсем все? Даже грабить-убивать-жечь-насиловать? Или все-же общество должно защищать своих членов от деструктивной и/или неплодотворной деятельности отдельных индивидуумов? Грабежи и насилие — это деструктивная деятельность. Казино и игральные автоматы в настоящее время относятся к непродуктивной.
> Если человек дееспособен, он имеет полное право делать со своим телом что хочет — прыгать с крыши, пить колу, колоться чем попало, отрезать по чуть-чуть от себя мясо и жарить его.

Не имеет. Наше общество пока устроено так, что оно (общество) несет основные расходы на лечение-обучение индивидуума в молодости. Скажем, до 18 лет. Потом общество ждет, что человек часть этого «долга» выплатит обществу. Поэтому общество должно всячески уберечь человека от прыганья с крыши и изготовления шашлыка из собственной ноги. Уберечь человека от совершения необдуманных поступков — тоже задача общества. Это решается (не идеально, но хоть как-то) изданием соответствующих законов и системой наказаний за нарушения.
1. смысл есть. сравнение с нулем как минимум не медленнее (а как максимум быстрее и компактнее). На java у меня получилось, что наиболее оптимальным циклом будет

for ( int i = max; --i >= 0; )
{
[...]
}

Если же гарантировано, что max > 0, то еще чуток можно сэкономить, использовав do-while
У автора какая-то нездоровая любовь к запятым в тексте. Они рассыпаны по тексту таким ровным слоем, что текст становится трудночитаем.
Ну видите — выходит отменой зимнего времени мы «убиваем» сразу несколько «зайцев»*: И сохраняем здоровье тем, кто сложно переносит переводы стрелок (эх! найти бы статистику за 1970 — 2030 годы и в динамике оценить результат тех или иных действий), и увеличиваем световой день зимой (санки, коньки и прочие детские забавы), и не уменьшаем световой день летом.

* При переводе стрелок ни одного зайца не пострадало
Если этой зимой темнеет, когда на часах 17:00, то следующей зимой в этот же день во время заката будет 18:00. Мне лично это достаточно параллельно — в рабочие дни я по вечерам солнца не вижу в любом случае. Но в целом я именно такое решение президента приветствую. Я помню, как в школьные годы успевал после уроков еще на лыжах покататься. Так что считаю, что сдвиг на +2 к астрономическому/поясному времени вполне оправдан для России. Конечно, абсолютно такой же результат можно было бы получить, начиная занятия в школе не в 8:30, а в 7:30. Но это перестройка графика для всей экономики. Гораздо проще законодательно передвинуть стрелки еще на час, оставив старые расписания.

Да, кстати. Среди моих знакомых я не нашел ни одного человека (хотя может плохо искал), кто реально страдал от перевода часов на летнее и зимнее время. Так что не верю статистическим выкладкам о том, что перевод стрелок негативно сказывается на здоровье. Думаю, что учащающиеся при этом расстройства связаны не с переводом стрелок, а просто с весенне-осенними изменениями в организмах. Будь моя воля — я бы летом сделал бы GMT +05:00. Зимой путь будет +04:00

public abstract class Debug
{
  public static final void _trace ( final String text )
  {
    System.out.println ( "Trace: " + text );
  }
}
На этапе сборки релизной версии препроцессор (писанный на коленке) попросту выкидывает из кода куски от «Debug._trace (» и до соответствующей закрывающей скобки. Я не претендую на то, чтобы это было эталонным подходом к логированю, но мне этого (чуть понавороченнее, я тут только суть указал) пока хватает за глаза.
вы неправильно перевели «is equivalent to:»
правильный перевод на русский этого будет «эквивалентен по полученным результатам» (именно эквивалентен, а не равен), но это вовсе не означает что конструкции будут «одинаковыми по манере исполнения java-машиной».

конструкция
int i = 5;
тоже эквивалентна конструкции
int i = Integer.parseInt ( new StringBuffer ( )
  .append ( '5' ).toString ( ) );
, но в первом случае — это простое присваивание переменной, а во втором создание объектов в хипе.
разница в том, что первый вариант — это оператор присваивания, а второй — создание нового объекта в хипе (который впоследствии может быть и удален из хипа) ну и присваивание тоже. возьмите декомпилятор и проверьте. от присваивания переменной [допустимого для ее типа] значения размер хипа и его фрагментация не изменяется. Не знаю как найти в официальной документации по жаве такую банальную вещь. Предлагаю вам самостоятельно проверить и аргументированно опровергнуть, если вас что-то в моих словах не устраивает. В конце концов, ну запустите вы фуу и бар и посмотрите как будет вести себя хип и как будет работать GC
побойтесь бога! если бы конструкция String a=«hello»; размещала бы (на этапе рантайма программы, разумеется) в хипе новый объект типа String, то откуда вообще в этом стринге возьмутся последовательно составленные символы h-e-l-l-o? Дело как раз в том и состоит, что код навроде вот такого никаким боком ничего не меняет в хипе

public void foo ( )
{
  while ( true )
  {
    String a = "hello";
    String b = "apple";
    String c = "banana";
    String d = "apricot";
    String e = "pear";
//
    a = null;
    b = null;
    c = null;
    e = null;
  }
}

в отличии от вот такого:
public void bar ( )
{
  while ( true )
  {
    String a = new String ( "hello" );
    String b = new String ( "apple" );
    String c = new String ( "banana" );
    String d = new String ( "apricot" );
    String e = new String ( "pear" );
//
    a = null;
    b = null;
    c = null;
    e = null;
  }
}

на что я и постарался обратить внимание топикстартера
я принимаю претензию о неверной терминологии. я имел в виду, что объект типа String будет создан на стадии загрузки класса и не будет выгружен. далее в программе манипуляции типа String a=«hello»; String b=a; a=null; b=«world»; b=null; ничего с хипом не делают вообще(!). Перечитайте оригинальную статью начиная со слов «Давайте посмотрим на пример. Допустим, у нас есть следующий код:» и посмотрите на код.
зачем эксепшены? в x86 для этого carry-флаг есть.
  add    RAX,RBX
  jc     >label
Надо понимать, что «сложение» и «сложение xx-битных чисел в компьютере» вообще говоря разные операции. Эксепшен — это «все, финиш, приехали». А переполнение при том же сложении — это заранее оговоренная в документации особенность работы конкретного процессора.
> но в некоторых особо точных расчётах и его может не хватить

вот это я и пытаюсь спросить — каким образом вы собираетесь делать «особо точные расчеты», если не использовать те же алгоритмы с увеличенной разрядностью? ладно, умножение в столбик я представляю как реализовать. а деление и прочие синусы?
Хорошо, предположим что ваш тезис о недопустимости финансовых расчетов с помощью арифметики с плавающей точкой верен. А какие в таком случае альтернативы? Если имеется счет, на который была внесена сумма в ххх.xx рублей с процентной ставкой yy.yy% в месяц и накопительным процентом (я забыл как называется этот термин правильно) — то какая сумма должна быть на счете через z1 дней, если через z2 дней клиент захочет снять треть вклада? Посчитайте это без использования плавающей точки, перемножьте на количество клиентов в банке и сравните получившиеся погрешности. Так или иначе придется «вручную» совершать те же операции нормализации и округления до приемлемых порядков.
> Множество действительных чисел, конечно.

[каламбур]Множество действительных чисел бесконечно[/каламбур]
Велик и могуч русский язык :) Но как раз слово «конечно» в обиходе является синонимом «обозримо мозгом, имеет начало и конец» и поэтому будет антонимом для «несчетно, неисчислимо, бесконечно».
String a = «hello»;
// делаем чего-нибудь
a = null;
При этой операции сама строка «hello» никуда из памяти не денется. Ибо это вообще константная строка, которая загружается раз и навсегда при загрузке класса. Так что хипа от операции «a = null» больше не станет. И фрагментация хипа существено не изменится.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity