เขียนลงในรูปแบบทฤษฎีจำนวน


19

เขียนข้อความทางคณิตศาสตร์โดยใช้สัญลักษณ์:

  • There exists at least one non-negative integer(เขียนเป็นEตัวบ่งชี้ที่มีอยู่)
  • All non-negative integers(เขียนเป็นAปริมาณสากล)
  • + (ส่วนที่เพิ่มเข้าไป)
  • * (คูณ)
  • = (ความเสมอภาค)
  • >, <(ตัวดำเนินการเปรียบเทียบ)
  • &(และ), |(หรือ), !(ไม่)
  • (, )(สำหรับการจัดกลุ่ม)
  • ชื่อตัวแปร

ซึ่งเทียบเท่ากับคำสั่ง

มีจำนวนตรรกยะจำนวน a อยู่เช่นπ + e * a มีเหตุผล

(แน่นอนπ=3.1415 ...คือค่าคงที่ทางคณิตศาสตร์เท่ากับเส้นรอบวงหารด้วยเส้นผ่านศูนย์กลางของวงกลมและอี=2.7182 ...คือจำนวนของออยเลอร์ )

คุณต้องพิสูจน์ว่าข้อความของคุณนั้นเทียบเท่ากับข้อความข้างต้น

เห็นได้ชัดว่าวิธี "สั้นที่สุด" ที่จะไปเกี่ยวกับเรื่องนี้คือการพิสูจน์ข้อความจริงหรือเท็จแล้วตอบด้วยข้อความจริงเล็กน้อยหรือเท็จเนื่องจากข้อความจริงทั้งหมดเทียบเท่ากันเช่นเดียวกับข้อความเท็จทั้งหมด

อย่างไรก็ตามคุณค่าความจริงของแถลงการณ์ที่ระบุนั้นเป็นปัญหาที่ยังไม่แก้ในวิชาคณิตศาสตร์ : เราไม่รู้ด้วยซ้ำว่าπ+อีไม่มีเหตุผล! ดังนั้นหากไม่ได้ทำการวิจัยทางคณิตศาสตร์ที่ก้าวล้ำความท้าทายคือการหาคำสั่งที่“ ง่าย” พิสูจน์ความเท่าเทียมและอธิบายสั้น ๆ เท่าที่จะทำได้

เกณฑ์การให้คะแนน

E A + * = > < & |และ!แต่ละเพิ่ม 1 คะแนน (และ)อย่าเพิ่มอะไรเข้าไปในคะแนน ชื่อตัวแปรแต่ละตัวจะเพิ่ม 1 คะแนน

เช่นE x (A ba x+ba>x*(x+ba))คะแนน 13 ( E x A ba x + ba > x * x + ba)

คะแนนต่ำสุดชนะ


บันทึก:

คำเตือน: ข้อความนี้ไม่ได้เขียนโดย OP

  • นี่คือไม่ที่ท้าทาย คำตอบไม่จำเป็นต้องมีรหัส
  • นี่คล้ายกับ แต่ไม่ใช่ความท้าทายในการเนื่องจากคุณต้องเขียนคำแถลงและพิสูจน์ว่ามันเทียบเท่ากับข้อความอื่น
  • คุณได้รับอนุญาตให้ส่งเรื่องจริงเล็กน้อย (เช่นสำหรับทั้งหมด x, x = x Ax x=x) หรือคำสั่งที่เป็นเท็จเล็กน้อย (เช่นสำหรับทั้งหมด x, x> x Ax x>x) หากคุณสามารถพิสูจน์ได้ว่าข้อความข้างต้นเป็นจริง / เท็จ
  • คุณได้รับอนุญาตให้ใช้สัญลักษณ์เพิ่มเติม (คล้ายกับบทแทรกในการพิสูจน์กอล์ฟ) แต่คะแนนจะถูกนับเช่นเดียวกับที่คุณไม่ได้ใช้
    ตัวอย่างเช่นหากคุณนิยามa => bว่าหมายถึง(!a) | bแต่ละครั้งที่คุณใช้=>ในการพิสูจน์คะแนนของคุณจะเพิ่มขึ้น 2
  • เนื่องจากค่าคงที่ไม่อยู่ในรายการสัญลักษณ์ที่อนุญาตคุณต้องไม่ใช้
    ตัวอย่างเช่น: คำสั่ง1 > 0สามารถเขียนเป็น

    
    Forall zero: ( zero + zero = zero ) =>
    Forall one: ( Forall x: x * one = x ) =>
    one > zero
    

    ที่ 23 คะแนน (จำไว้ว่า=>ค่าใช้จ่าย 2 ต่อการใช้งาน)

คำแนะนำ

  • การใช้ค่าคงธรรมชาติที่คุณอาจจะทำE0, 0+0=0 & E1, At 1*t=t &(เพื่อให้คุณไม่จำเป็น=>ซึ่งเป็นขยายตัวมากขึ้น); สำหรับตัวเลขที่มากกว่า 1 เพียงเพิ่ม 1

5
ฉันชอบแนวคิดที่นี่ แต่คำสั่งนั้นยากมากที่จะเขียนและฉันจะประทับใจในวิธีการแก้ปัญหาใด ๆ ไม่ว่าคะแนน ฉันจะแนะนำให้ใช้สิ่งที่เรียบง่ายเพื่อให้ผู้คนเข้าร่วมมากขึ้น
xnor

1
คุณต้องมีคำสั่งทางคณิตศาสตร์ซึ่งเทียบเท่ากับคำสั่งที่ให้มา พวกเขาควรจะเทียบเท่าในแง่ใด หากฉันถูกต้องคำสั่งที่กำหนดเป็นคำเท็จ ดังนั้นการเทียบกับข้อความอื่น ๆ จึงยากสำหรับฉันที่จะเข้าใจ ตัวอย่างเช่นมันเทียบเท่ากับมีจำนวนตรรกยะ a, เช่นนั้นฉัน + e * a เป็นจำนวนตรรกยะ (โดยที่iคือหน่วยจินตภาพ)?
Luis Mendo

1
You are allowed to submit a trivially-true (e.g., for all x, x = x Ax x=x) or a trivially-false statement (e.g., for all x, x > x Ax x>x) if you can prove the statement above is true/false.บันทึกปัจจุบันเพียงแค่พูดว่า ข้อความนี้ไม่ได้รับการพิสูจน์หรือไม่พิสูจน์ดังนั้นฉันไม่คิดว่าปัญหาจะน่าเบื่อหรือไม่เนื่องจากปัญหาดังกล่าวได้รับการแก้ไขแล้ว
l4m2

1
คำถามตามที่เขียนดูเหมือนจะฝัง lede และหลีกเลี่ยงการอธิบายสิ่งที่เกิดขึ้นจริงดังนั้นฉันจึงเขียนคำอธิบายเล็ก ๆ น้อย ๆ ในบันทึก (ที่ไม่สำคัญของความท้าทายคือบานพับบนค่าความจริงที่ไม่รู้จักในปัจจุบันของคำสั่งที่กำหนด) .
ลินน์

I'd be impressed by any solution no matter the score.คะแนนเพียงเพื่อให้มีจุดมุ่งหมายสำหรับผู้ที่สามารถแก้ปัญหานี้ได้
l4m2

คำตอบ:


27

671

E a (a+a>a*a & (E b (E c (E d (A e (A f (f<a | (E g (E h (E i ((A j ((!(j=(f+f+h)*(f+f+h)+h | j=(f+f+a+i)*(f+f+a+i)+i) | j+a<e & (E k ((A l (!(l>a & (E m k=l*m)) | (E m l=e*m))) & (E l (E m (m<k & g=(e*l+(j+a))*k+m)))))) & (A k (!(E l (l=(j+k)*(j+k)+k+a & l<e & (E m ((A n (!(n>a & (E o m=n*o)) | (E o n=e*o))) & (E n (E o (o<m & g=(e*n+l)*m+o))))))) | j<a+a & k=a | (E l (E m ((E n (n=(l+m)*(l+m)+m+a & n<e & (E o ((A p (!(p>a & (E q o=p*q)) | (E q p=e*q))) & (E p (E q (q<o & g=(e*p+n)*o+q))))))) & j=l+a+a & k=j*j*m))))))) & (E j (E k (E l ((E m (m=(k+l)*(k+l)+l & (E n (n=(f+m)*(f+m)+m+a & n<e & (E o ((A p (!(p>a & (E q o=p*q)) | (E q p=e*q))) & (E p (E q (q<o & j=(e*p+n)*o+q))))))))) & (A m (A n (A o (!(E p (p=(n+o)*(n+o)+o & (E q (q=(m+p)*(m+p)+p+a & q<e & (E r ((A s (!(s>a & (E t r=s*t)) | (E t s=e*t))) & (E s (E t (t<r & j=(e*s+q)*r+t))))))))) | m<a & n=a & o=f | (E p (E q (E r (!(E s (s=(q+r)*(q+r)+r & (E t (t=(p+s)*(p+s)+s+a & t<e & (E u ((A v (!(v>a & (E w u=v*w)) | (E w v=e*w))) & (E v (E w (w<u & j=(e*v+t)*u+w))))))))) | m=p+a & n=(f+a)*q & o=f*r)))))))) & (E m (m=b*(h*f)*l & (E n (n=b*(h*f+h)*l & (E o (o=c*(k*f)*i & (E p (p=c*(k*f+k)*i & (E q (q=d*i*l & (m+o<q & n+p>q | m<p+q & n>o+q | o<n+q & p>m+q))))))))))))))))))))))))))

มันทำงานอย่างไร

ก่อนอื่นคูณด้วยตัวหารร่วมของ a และ (π + e · a) เพื่อเขียนเงื่อนไขใหม่: มี a, b, c ∈ℕ (ไม่ใช่ศูนย์ทั้งหมด) ด้วย·π + b · e = c หรือ a ·π - b · e = c หรือ −a ·π + b · e = c มีสามกรณีที่จำเป็นต้องจัดการกับปัญหาการลงชื่อ

จากนั้นเราจะต้องเขียนสิ่งนี้ใหม่เพื่อพูดคุยเกี่ยวกับπและ e ผ่านการประมาณด้วยเหตุผล: สำหรับการประมาณตามเหตุผลทั้งหมดπ₀ <π <π₁และe₀ <e <e₁เรามี·π₀ + b · e ₀ <c <a ·π₁ + b ·e₁หรือ a ·π₀ - b ·e₁ <c <a ·π₁ + b ·e₀หรือ −a ·π₁ + b ·e₀ <c <−a ·π₀ + b ·e₁ (โปรดทราบว่าขณะนี้เราได้รับเงื่อนไข“ ไม่ใช่ศูนย์ทั้งหมด” ฟรี)

ตอนนี้สำหรับส่วนที่ยาก เราจะได้รับการประมาณเหตุผลเหล่านี้ได้อย่างไร เราต้องการใช้สูตรเช่น

2/1 · 2/3 · 4/3 · 4/5 ⋯ (2 · k) / (2 · k + 1) <π / 2 <2/1 · 2/3 · 4/3 · 4/5 ⋯ (2 · k) / (2 · k + 1) · (2 ​​· k + 2) / (2 · k + 1)

((k + 1) / k) k <E <((k + 1) / k) k + 1 ,

แต่ไม่มีวิธีที่ชัดเจนในการเขียนคำจำกัดความซ้ำ ๆ ของผลิตภัณฑ์เหล่านี้ ดังนั้นเราจึงสร้างขึ้นเล็กน้อยของเครื่องจักรที่ครั้งแรกที่ผมได้อธิบายไว้ในโพสต์นี้ Quora กำหนด:

หาร (d, a): = ∃b, a = d · b,

powerOfPrime (a, p): = ∀b, ((b> 1 และหาร (b, a)) ⇒หาร (p, b))

ซึ่งพอใจถ้า if a = 1 หรือ p = 1 หรือ p เป็นไพร์มและ a คือพลังของมัน แล้วก็

isDigit (a, s, p): = a <p และ∃b, (powerOfPrime (b, p) และ∃qr, (r <b และ s = (p · q + a) · b + r))

พอใจถ้า if a = 0 หรือ a เป็นตัวเลขของเลขฐาน -p สิ่งนี้ช่วยให้เราแสดงชุด จำกัด ใด ๆ โดยใช้ตัวเลขของตัวเลขฐานบางส่วน ตอนนี้เราสามารถแปลการคำนวณซ้ำได้โดยการเขียนอย่างคร่าว ๆ มีชุดของสถานะระดับกลางที่สถานะสุดท้ายอยู่ในชุดและทุกสถานะในชุดนั้นเป็นสถานะเริ่มต้นหรือตามด้วยขั้นตอนเดียวจากสถานะอื่น ๆ ใน ชุด

รายละเอียดอยู่ในรหัสด้านล่าง

การสร้างรหัสในHaskell

{-# LANGUAGE ImplicitParams, TypeFamilies, Rank2Types #-}

-- Define an embedded domain-specific language for propositions.
infixr 2 :|

infixr 3 :&

infix 4 :=

infix 4 :>

infix 4 :<

infixl 6 :+

infixl 7 :*

data Nat v
  = Var v
  | Nat v :+ Nat v
  | Nat v :* Nat v

instance Num (Nat v) where
  (+) = (:+)
  (*) = (:*)
  abs = id
  signum = error "signum Nat"
  fromInteger = error "fromInteger Nat"
  negate = error "negate Nat"

data Prop v
  = Ex (v -> Prop v)
  | Al (v -> Prop v)
  | Nat v := Nat v
  | Nat v :> Nat v
  | Nat v :< Nat v
  | Prop v :& Prop v
  | Prop v :| Prop v
  | Not (Prop v)

-- Display propositions in the given format.
allVars :: [String]
allVars = do
  s <- "" : allVars
  c <- ['a' .. 'z']
  pure (s ++ [c])

showNat :: Int -> Nat String -> ShowS
showNat _ (Var v) = showString v
showNat prec (a :+ b) =
  showParen (prec > 6) $ showNat 6 a . showString "+" . showNat 7 b
showNat prec (a :* b) =
  showParen (prec > 7) $ showNat 7 a . showString "*" . showNat 8 b

showProp :: Int -> Prop String -> [String] -> ShowS
showProp prec (Ex p) (v:free) =
  showParen (prec > 1) $ showString ("E " ++ v ++ " ") . showProp 4 (p v) free
showProp prec (Al p) (v:free) =
  showParen (prec > 1) $ showString ("A " ++ v ++ " ") . showProp 4 (p v) free
showProp prec (a := b) _ =
  showParen (prec > 4) $ showNat 5 a . showString "=" . showNat 5 b
showProp prec (a :> b) _ =
  showParen (prec > 4) $ showNat 5 a . showString ">" . showNat 5 b
showProp prec (a :< b) _ =
  showParen (prec > 4) $ showNat 5 a . showString "<" . showNat 5 b
showProp prec (p :& q) free =
  showParen (prec > 3) $
  showProp 4 p free . showString " & " . showProp 3 q free
showProp prec (p :| q) free =
  showParen (prec > 2) $
  showProp 3 p free . showString " | " . showProp 2 q free
showProp _ (Not p) free = showString "!" . showProp 9 p free

-- Compute the score.
scoreNat :: Nat v -> Int
scoreNat (Var _) = 1
scoreNat (a :+ b) = scoreNat a + 1 + scoreNat b
scoreNat (a :* b) = scoreNat a + 1 + scoreNat b

scoreProp :: Prop () -> Int
scoreProp (Ex p) = 2 + scoreProp (p ())
scoreProp (Al p) = 2 + scoreProp (p ())
scoreProp (p := q) = scoreNat p + 1 + scoreNat q
scoreProp (p :> q) = scoreNat p + 1 + scoreNat q
scoreProp (p :< q) = scoreNat p + 1 + scoreNat q
scoreProp (p :& q) = scoreProp p + 1 + scoreProp q
scoreProp (p :| q) = scoreProp p + 1 + scoreProp q
scoreProp (Not p) = 1 + scoreProp p

-- Convenience wrappers for n-ary exists and forall.
class OpenProp p where
  type OpenPropV p
  ex, al :: p -> Prop (OpenPropV p)

instance OpenProp (Prop v) where
  type OpenPropV (Prop v) = v
  ex = id
  al = id

instance (OpenProp p, a ~ Nat (OpenPropV p)) => OpenProp (a -> p) where
  type OpenPropV (a -> p) = OpenPropV p
  ex p = Ex (ex . p . Var)
  al p = Al (al . p . Var)

-- Utility for common subexpression elimination.
cse :: Int -> Nat v -> (Nat v -> Prop v) -> Prop v
cse uses x cont
  | (scoreNat x - 1) * (uses - 1) > 6 = ex (\x' -> x' := x :& cont x')
  | otherwise = cont x

-- p implies q.
infixl 1 ==>

p ==> q = Not p :| q

-- Define one as the unique n with n+n>n*n.
withOne ::
     ((?one :: Nat v) =>
        Prop v)
  -> Prop v
withOne p =
  ex
    (\one ->
       let ?one = one
       in one + one :> one * one :& p)

-- a is a multiple of d.
divides d a = ex (\b -> a := d * b)

-- a is a power of p (assuming p is prime).
powerOfPrime a p = al (\b -> b :> ?one :& divides b a ==> divides p b)

-- a is 0 or a digit of the base-p number s (assuming p is prime).
isDigit a s p =
  cse 2 a $ \a ->
    a :< p :&
    ex
      (\b -> powerOfPrime b p :& ex (\q r -> r :< b :& s := (p * q + a) * b + r))

-- An injection from ℕ² to ℕ, for representing tuples.
pair a b = (a + b) ^ 2 + b

-- πn₀/πd < π/4 < πn₁/πd, with both fractions approaching π/4 as k
-- increases:
-- πn₀ = 2²·4²·6²⋯(2·k)²·k
-- πn₁ = 2²·4²·6²⋯(2·k)²·(k + 1)
-- πd = 1²⋅3²·5²⋯(2·k + 1)²
πBound p k cont =
  ex
    (\s x πd ->
       al
         (\i ->
            (i := pair (k + k) x :| i := pair (k + k + ?one) πd ==>
             isDigit (i + ?one) s p) :&
            al
              (\a ->
                 isDigit (pair i a + ?one) s p ==>
                 ((i :< ?one + ?one :& a := ?one) :|
                  ex
                    (\i' a' ->
                       isDigit (pair i' a' + ?one) s p :&
                       i := i' + ?one + ?one :& a := i ^ 2 * a')))) :&
       let πn = x * k
           πn = πn + x
       in cont πn πn πd)

-- en₀/ed < e < en₁/ed, with both fractions approaching e as k
-- increases:
-- en₀ = (k + 1)^k * k
-- en₁ = (k + 1)^(k + 1)
-- ed = k^(k + 1)
eBound p k cont =
  ex
    (\s x ed ->
       cse 3 (pair x ed) (\y -> isDigit (pair k y + ?one) s p) :&
       al
         (\i a b ->
            cse 3 (pair a b) (\y -> isDigit (pair i y + ?one) s p) ==>
            (i :< ?one :& a := ?one :& b := k) :|
            ex
              (\i' a' b' ->
                 cse 3 (pair a' b') (\y -> isDigit (pair i' y + ?one) s p) ==>
                 i := i' + ?one :& a := (k + ?one) * a' :& b := k * b')) :&
       let en = x * k
           en = en + x
       in cont en en ed)

-- There exist a, b, c ∈ ℕ (not all zero) with a·π/4 + b·e = c or
-- a·π/4 = b·e + c or b·e = a·π/4 + c.
prop :: Prop v
prop =
  withOne $
  ex
    (\a b c ->
       al
         (\p k ->
            k :< ?one :|
            Bound p k $ n πn πd ->
               eBound p k $ \en en ed ->
                 cse 3 (a * πn * ed) $ \x ->
                   cse 3 (a * πn * ed) $ \x ->
                     cse 3 (b * en * πd) $ \y ->
                       cse 3 (b * en * πd) $ \y ->
                         cse 6 (c * πd * ed) $ \z ->
                           (x + y :< z :& x + y :> z) :|
                           (x :< y + z :& x :> y + z) :|
                           (y :< x + z :& y :> x + z))))

main :: IO ()
main = do
  print (scoreProp prop)
  putStrLn (showProp 0 prop allVars "")

ลองออนไลน์!


"ซึ่งพอใจถ้า if a = 1 หรือ p เป็นไพร์มและ a คือพลังของมัน" - คุณสามารถมี p = 1 ได้แม้ว่า p> 1 จะบอกเป็นนัยisDigitแต่คุณใช้ที่เดียวเท่านั้น
Ørjan Johansen

@ ØrjanJohansenขอบคุณฉันแก้ไขบันทึกย่อนั้นแล้ว (อันที่จริงแล้วมันไม่สำคัญว่าจะวางตัวpowerOfPrimeและisDigitไขลานอะไรในกรณีที่ไม่คาดคิดตราบใดที่มีวิธีที่จะเป็นตัวแทนของเซต จำกัด ทุกอัน)
Anders Kaseorg

2
หากaมีคะแนน 7 หรือสูงกว่าผมคิดว่าแล้วมันจะคุ้มค่าการเพิ่มเสื้อคลุมไปex (\a' -> a' := a :& ... ) isDigit
Ørjan Johansen

@ ØrjanJohansenแน่นอนว่าประหยัด 68 ขอบคุณ!
Anders Kaseorg

ฉันเชื่อว่าคุณจำเป็นต้องใช้k>0เพราะeBoundให้ตัวส่วนศูนย์ (และตัวเศษศูนย์หนึ่งตัว) ในk==0กรณีดังนั้นทางเลือกทั้งหมดจึงล้มเหลว
Ørjan Johansen

3

270

E1                                                                              { Exist 1, defined when Any k introduced }
Ec1 Ec2 Ec3 Ec4 Ec5 Ak k*1=k & c3>1 & ( En0 An n<n0 |                           { for large enough n, |(c1-c4)e+c3(4-pi)/8+(c2-c5)|<1/k }
Ex Ep Ew Emult At (Eb ((b>1 & Eh b*h=t) &! Eh h*p=b)) |                         { x read in base-p, then each digit in base-w. t as a digit }
Ee1 Ee2 Ehigher Elower e2<p & lower<t & ((higher*p+e1)*p+e2)*t+lower=x &        { last digit e1, this digit e2 }
    { Can infer that e2=w+1 | e1<=e2 & u1<=u2 & i1<=i2 & s1<=s2 & t1<=t2, so some conditions omitted }
Ei1 Es1 Et1 Eu1 (((u1*w)+i1)*w+t1)*w+s1=e1 &                                    { (u,i,t,s) }
Ei2 Es2 Et2 Eu2 i2<w & s2<w & t2<w & (((u2*w)+i2)*w+t2)*w+s2=e2 &               { e2=1+w is initial state u=i=0, s=t=1 }
(e2=w+1 | e1=e2 | i2=i1+1+1 & s2=s1*(n+1) & t2=t1*n &                           { i=2n, s=(n+1)^n, mult=t=n^n, s/mult=e }
Eg1 Eg2 g1+1=(i2+i2)*(i2+i2) & g1*u1+mult=g1*u2+g2 & g2<g1) &                   { u/mult=sum[j=4,8,...,4n]1/(j*j-1)=(4-pi)/8. mult=g1*(u2-u1)+g2 }
(t>1 | i2=n+n & t2=mult & Ediff Ediff2                                          { check at an end t=1 }
c1*s2+c2*mult+c3*u2+diff=c4*s2+c5*mult+diff2 & k*(diff+diff2)<mult))            { |diff-diff2|<=diff+diff2<mult/k, so ...<1/k }

a|b&cเป็นa|(b&c)เพราะฉันคิดว่าการลบวงเล็บเหล่านี้ทำให้ดูดีขึ้น แต่อย่างไรก็ตามพวกเขาก็ฟรี

ใช้ JavaScript "(expr)".replace(/\{.*?\}/g,'').match(/[a-z0-9]+|[^a-z0-9\s\(\)]/g)เพื่อนับโทเค็น


ทำไมคุณสามารถใช้mult = t? ตั้งแต่ยังxสามารถมีตัวเลขหลายขีด, คุณจะต้องอนุญาตให้มีขนาดใหญ่พอสมควรe1 = e2 = 0 tนอกจากนี้คุณจะต้องวงเล็บเพิ่มเติมหรือแก้ความกำกวมอื่น ๆ _ & _ | _สำหรับการสร้างที่ไม่ชัดเจนเช่น
Anders Kaseorg

@AndersKaseorg multฉันคูณทุกรายการ ไม่เห็นปัญหาใด ๆmult=t2ในตอนท้าย e1=e2=0ควรได้รับการแก้ไข แต่ไม่แน่นอนดังนั้นฉันจึงไม่เปลี่ยนการรับรู้ในปัจจุบัน
l4m2

ถ้าa & b | cเป็นเช่น(a & b) | cนั้นคุณt*1=tอยู่ผิดที่แน่นอน c1 = c4 & c2 = c5 & c3 = 0 & diff = diff2นอกจากนี้คุณยังไม่ได้รับการยกเว้นการแก้ปัญหาจิ๊บจ๊อย
Anders Kaseorg

@AndersKaseorg เหตุผลที่ฉันdiff≠diff2ทำงานทำไม
l4m2

อย่างไรก็ตามฉันสามารถใช้!(c2=c5)ตามที่เรารู้อยู่แล้วว่าeไม่มีเหตุผลดังนั้นแม้ว่านี่จะไม่ได้ผลคะแนนจะไม่เพิ่มขึ้น
l4m2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.