В Symja вы можете использовать функцию Distribute () или Expand () для вашей задачи:
package org.matheclipse.core.examples;
import org.matheclipse.core.eval.ExprEvaluator;
import org.matheclipse.core.expression.F;
import org.matheclipse.core.interfaces.IExpr;
import org.matheclipse.parser.client.SyntaxError;
import org.matheclipse.parser.client.math.MathException;
public class ExpandSO54204637 {
public static void main(String[] args) {
try {
ExprEvaluator util = new ExprEvaluator();
IExpr expr = util.eval("a*(b+c)");
IExpr result = util.eval(F.Distribute(expr));
// print: a*b+a*c
System.out.println(result.toString());
result = util.eval(F.Expand(expr));
// print: a*b+a*c
System.out.println(result.toString());
} catch (SyntaxError e) {
// catch Symja parser errors here
System.out.println(e.getMessage());
} catch (MathException me) {
// catch Symja math errors here
System.out.println(me.getMessage());
} catch (Exception e) {
e.printStackTrace();
} catch (final StackOverflowError soe) {
System.out.println(soe.getMessage());
} catch (final OutOfMemoryError oome) {
System.out.println(oome.getMessage());
}
}
}
У Вас могла бы быть некоторая удача с помощью ряда стилей сброса в CSS. Они имеют большое значение для устранения различий перекрестного браузера между способом, которым представляются элементы.
Eric Meyer (один из лучших умов сети на CSS) описывает стили сброса и почему он использует их здесь - с его последней версией здесь.
Тем не менее не зная полного эффекта Вы пытаетесь достигнуть, сформироваться, элементы известно трудно разработать способом, который совершенно последователен через браузерные платформы. Всего наилучшего.:)
Я также думаю, что проблема находится в границе. Попытайтесь определить стиль границ специально для исходных данных/текстовой области вместе с их шириной.
вход, текстовая область {border:1px чисто серый; width:498px;}
Также смотрите в источнике, если вход/текстовая область не определяется больше нигде или в их собственном теге (например, размер или строки/седла). Другая опция, когда IE бездельничает, использует специальный файл CSS для него. Однако, по моему скромному мнению, это не должно быть необходимо в Вашем случае.
Необходимо явно установить границу 1 пкс и сделать ширину 498 пкс или сделать границу 0 и ширину 500 пкс, хотя последний сделает вход невозможным видеть, если Вы не будете знать, что это там, поэтому оттуда это - просто проблема моделирования.
Я рекомендовал бы сначала избежать, чтобы "звезда" сбрасывала правило, поскольку это только приносит проблемы по линии. Вместо этого предпочтите определенный сброс как
ул., ol, p, блок цитирования, h1, h2 / и т.д. {margin:0; padding:0;}
ЭЛЕМЕНТЫ ФОРМЫ, на самом деле, то, где звездообразное правило наносит большую часть ущерба.
AFAIK, устанавливая дополнение и ширину явно к текстовой области и входному элементу, даст взыскивание той же пиксельной ширины во всех браузерах.
IE6 действительно добавляет поле на 1 пкс к TOP и НИЖНЕЙ ЧАСТИ, которой я верю, не стороны.
Вот пример правила СБРОСА, что TAHT does'nt повреждает свойства по умолчанию элементов формы:
/*---------------------------*/
/* Base rules & reset */
/*---------------------------*/
body {
font-size:11px; line-height:1.2em; font-family:Verdana, Arial, sans-serif;
margin:0; padding:0;
background:#fff url(/01/images/cassis/body-bg.gif) repeat-x 50% 0;
color:#303030;
}
p, pre, blockquote, address, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, form, label, fieldset { margin:0; padding:0; }
ul, ol, li { list-style:none; }
input, select, textarea { font:11px Arial, sans-serif; color:#333; line-height:1.2em; }
table, caption, td, th { margin:0; padding:0; font-size:11px; line-height:1.2em; font-weight:normal; }
img { display:inline; }
/* cross-browser clearing of floats (no extra space in IE) */
div.clear { clear:both; overflow:hidden; height:0; }
Они просто случайны, но Вы получаете идею. Не очищайте поле и дополняющий на всем, намного более безопасно очистить то, что Вы должны и оставляете значениями по умолчанию браузера в другом месте.