Остаток от деления. Глюк.

Navarro

Новичок
Остаток от деления. Глюк.

Os: WIN XP
Php Ver: 3.4.10

1) A%(B-1)
2) (A+1)%B

Выражение 1 временами глючит, найти хоть какую-то закономерность я не смог, хотя глючит в одних и тех же местах.
Выражение 2 ведет себя корректно.
 

SiMM

Новичок
Не воспроизводится. А вообще - это два разных, не взаимоэквивалентных, выражения.
 

basboy

Новичок
Navarro
Еслиб ты задачу решаемую сформулировал, то тебе далибы советы дельные.
 

Navarro

Новичок
Я не спрашиваю. Я констатирую факт.
Глюк обнаружился при составлении алфавитного указателя.
Имеется БД (~2500 записей), строки разбиваются на страницы
по Nx3 записей. С каждой страницы вытаскивается первый знак первого и последнего слова. Должно получатся в конечном итоге приблизительно следующее [1-A][A-C][C-E] и т.д.
В некоторых местах (если использовалось A%(B-1), А-текущая запись, B- Количество записей на страницу.) последняя строка определялась неправильно и получалось [1-A][A-A][C-E].

При использовании (A+1)%B все определяется корректно.
Обнаружил при составлении такой вот ерунды.
 

SiMM

Новичок
> Я не спрашиваю. Я констатирую факт.
Факты так не констатируют. Тем более, что их проверить никто не может. Факты констатируют приведением проблемного кода (5-10 строк). Который любой желающий без особых усилий и познаний может у себя запустить и убедиться в том, что факт имеет место быть. А пока это всё смахивает на наукообразие - никаких конкретных цифр - нет.
PS: неправильность алгоритма !== глюк в PHP.
 

Gremboloid

инженера Гр...
нет. Там клюка нет. Скорей всего ошибка у тебя в логике. Где-то ты сам себя запутал.
 

basboy

Новичок
Парсер не может в зависимости от погоды по разному делать элементарные операции.
 

Steamroller

Новичок
Navarro, а ты не проверял такое предположение:

A%(B-1)
и
(A+1)%B

- не эквивалентные функции? (Не в PHP, а вообще).
Например, A = 11, B = 6:
11 % (6 - 1) = 11 % 5 = 1
(11+1) % 6 = 12 % 6 = 0
 
Сверху