2 + 2 = 5 [සංවෘත] කරන වැඩසටහනක් ලියන්න


393

අංක 2 සහ 2 සහ ප්‍රතිදානයන් 5 එකතු කරන බවක් පෙනෙන වැඩසටහනක් ලියන්න.

ඔබේ වැඩසටහනට කිසිදු දෝෂයක් ප්‍රතිදානය කළ නොහැක. මතක කුහර ගැන විමසිල්ලෙන් සිටින්න! ආදානය අත්‍යවශ්‍ය නොවේ.

2 + 2 ලෙස 5 ලෙස නැවත අර්ථ දැක්වීම එතරම් නිර්මාණාත්මක නොවේ ! එය දෙවරක් සිතා බලන්න එපා, වෙනත් දෙයක් උත්සාහ කරන්න.


48
ජෝර්ජ් ඕවල් විසින් රචිත "1984" පොතේ මෙය ප්‍රශ්නයකි.
bacchusbeale

97
මෙය යටපත් කර ඇත්තේ ඇයි? ප්ලස් දෙක යනු පහයි.
Geobits

79
එතන! ඔව්! සිව්! ලයිට්!
නික් ටී

105
EGeobits - මම එකඟ වෙමි: 2 + 2 = 5 ඔබට මෙම කැල්කියුලේටරය තුළ එය දැකිය හැකිය .
MT0

47
echo "2+2=5";
user3459110

Answers:


669

ජාවා

පරාවර්තනය යනු ජාවා අපයෝජනය කිරීම සමඟ යා හැකි නිවැරදි මාර්ගයයි ... නමුත් ඔබ යම් අගයන් වෙනස් කිරීමට වඩා ගැඹුරට යා යුතුය .

import java.lang.reflect.Field;

public class Main {
    public static void main(String[] args) throws Exception {
        Class cache = Integer.class.getDeclaredClasses()[0];
        Field c = cache.getDeclaredField("cache");
        c.setAccessible(true);
        Integer[] array = (Integer[]) c.get(cache);
        array[132] = array[133];

        System.out.printf("%d",2 + 2);
    }
}

ප්‍රතිදානය:

5

පැහැදිලි කිරීම:

ඔබට සාමාන්‍යයෙන් ප්‍රවේශ විය හැකි ප්‍රමාණයට වඩා ගැඹුරින් එය වෙනස් කළ යුතුය. මෙය ජාවා 6 සඳහා නිර්මාණය කර ඇති බව සලකන්න .

පූර්ණ සංඛ්‍යා පන්තියේ ගැඹුර යනු පූර්ණ සංඛ්‍යා වල පියාසර බරකි. මෙය inte128 සිට +127 දක්වා වූ පූර්ණ සංඛ්‍යා සමූහයකි. cache[132]සාමාන්‍යයෙන් 4 ක් සිටින ස්ථානයයි. එය 5 ට සකසන්න.

අවවාදයයි: මෙය සැබෑ කේතයකින් කිරීමෙන් මිනිසුන් බොහෝ අසතුටට පත් වේ.

අයිඩියොන් මත කේත නිරූපණය .


5
ප්‍රශ්නය දුටු විගසම මේ ගැන සිතුවෙමි :)
ඔක්ටේවියා ටෝගාමි

306
බව. වේ. නපුර. නියත වශයෙන්ම නපුර. +1
ජෝන් ඩ්වොරක්

75
@ ජැන්ඩ්වොරක් චැට් කිරීමේදී යෝජනා කරන ලද්දේ Integer[] array = (Integer[]) c.get(cache); fisherYatesShuffle(array); දේවල් කීයක් කැඩී යනු ඇත්දැයි සිතා බලන්න ...

30
මෙවැනි පිළිතුරු මට SO ට වඩා මෙම වෙබ් අඩවියට ආදරය කරයි.
සොන්ගෝ

35
zomg, java පිළිතුරු කිසි විටෙකත් ඉහළ ඡන්ද ලබා නොගනී! ජාවා ඉහළට ගෙන ඒම සඳහා +1 :)
ක්‍රන්චර්

297

හස්කල්

මම කැමතියි ඔබට ඕනෑම දෙයක් ghci වෙතට විසි කරන්නේ කෙසේද යන්න සහ එය මුළුමනින්ම එය සමඟ පෙරළේ.

λ> let 2+2=5 in 2+2
5

36
මොකද කරන්නේ let 2+2=5 in 5+5? ಠ_ th
ජෝන්

22
An ජැන්ඩ්වෝරාක් Non-exhaustive patterns in function +- මම මෙහි නව ශ්‍රිතයක් (+) නිර්වචනය කර ඇති අතර, එසේ නොවන දෙයක් මම ප්ලග් කළහොත් 2+2එය වැරදියට සිදුවනු ඇත.
ෆ්ලොන්ක්

27
H ෂින්කිරෝ සෙවනැල්ල, නැවත අර්ථ දැක්වීමක් නොවේ
ජෝන්

96
එය හරියටම සමාන ය: "දෙවියන් වහන්සේ කීවේ 2 + 2 = 5 ට 2 + 2 ට ඉඩ දෙන්න"))
OutFall

11
32 user3217013 හැස්කල් ඉගෙන ගන්න, එය ඔබේ හදවතට හොඳයි.
සපත්තු

294

සී

ඉතා ලාභ උපක්‍රමයක් නමුත් මට විශ්වාසයි මම ඔබගෙන් බොහෝ දෙනෙක් කොටු කර ගන්නවා.

int main() {
    int a = 2 + 2;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     a++;
    printf("%d",a);
    return 0;
}

එය මෙහි උත්සාහ කරන්න

කේතය දකුණට අනුචලනය කරන්න.
වින්ඩෝස් / ලිනක්ස් ගැන මට විශ්වාස නැත, නමුත් ඕඑස්එක්ස් හි, අනුචලන තීරුව නොපෙනේ.
කෙසේ වෙතත්, ඔබගේ ප්‍රියතම කේත සංස්කාරකයේ "අභ්‍යවකාශ දෘශ්‍යකරණය" සක්‍රීය කිරීමට මෙය හොඳ හේතුවකි.


96
අනුචලන තීරුව ක්‍රෝමියම් හි දැකිය හැකි නමුත් මුලින් ඒ ගැන අවධානය යොමු කරන්නේ කවුද? :)
රුස්ලාන්

172
මිනිසුන් ව්‍යාකූල කිරීම සඳහා, ඔබට අනුචලන රේඛාවක් එක් කළ හැකි අතර එය අනුචලන තීරුවක පැවැත්ම "පැහැදිලි කිරීමට" ප්‍රමාණවත් නමුත් එය කියවීමට කිසිවෙකු නොසිතන පරිදි (අකුළන ලෙස අනුචලනය කරන්න).
හේගන් වොන් එයිට්සන්

22
OS X හි, අනුචලන තීරු පෙරනිමියෙන් මූසිකය සම්බන්ධ වී තිබේද යන්න මත රඳා පවතී. ස්පර්ශක පෑඩ් එකක් තිබේ නම්, අනුචලන තීරු ආවරණය කර ඇති අතර භාවිතයේ නොමැති විට ඒවා මැකී යයි. මූසිකයක් සම්බන්ධ වී ඇත්නම්, අනුචලන තීරු සන්දර්භය කොටුවෙන් ඉඩ සොරකම් කරන අතර එය සැමවිටම දැකිය හැකිය. මැක්බුක් එකකට USB මූසිකයක් ගලවා ප්ලග් කිරීමෙන් ඔබට මෙය පරීක්ෂා කළ හැකිය. ඇත්ත වශයෙන්ම මෙය පද්ධති මනාපයන් තුළ වින්‍යාසගත කළ හැකිය.
ඇන්ඩ්‍රියා

49
දක්ෂයි, නමුත් ජංගම දුරකතනයෙන් එය වචන වලින් පමණක් වේ :)
ලෝගන්

31
SE කේත කවුළු අනුචලනය කිරීමෙන් මට යමෙකුගේ ඇඟිලි බිඳීමට අවශ්‍ය නොවන එකම අවස්ථාව මෙයයි .
ObscureRobot

184

ගොල්ෆ් ස්ක්‍රිප්ට්

4:echo(2+2);

මුද්රණ 5.

ඇත්ත වශයෙන්ම ගොල්ෆ් ස්ක්‍රිප්ටයේ සින්ටැක්ස් එකක් වෙනත් භාෂාවන්ට වඩා කැපී පෙනෙන ලෙස වෙනස් වේ, මෙම වැඩසටහන සිදුවන්නේ මූලික හෝ සී-ඊෂ් වැනි දෙයක් ලෙස ය.

4  - අංක 4 තොගයේ තබන්න.
:echoසිරස් අන්තර්ගතය: 4 - තොගයේ ඉහළින් ඇති අගය විචල්ය echo වෙත සුරකින්න.
(  සිරස් අන්තර්ගතය: 4 - තොගයේ ඉහළින් ඇති අගය 1 කින් අඩු කරන්න. අන්තර්ගතය: 3
2  - අංක 2 තොගයේ මුදුනේ තබන්න.
+  සිරස් අන්තර්ගතය: 3 2 - තොගයේ ඉහළින් ඇති අංක දෙක එකතු කරන්න.
2  සිරස් අන්තර්ගතය: 5 - අංක 2 තොගයේ ඉහළට දමන්න.
)  සිරස් අන්තර්ගතය: 5 2 - තොගයේ ඉහළින් ඇති අගය 1 කින් වැඩි කරන්න. අන්තර්ගතය: 5 3
;  - තොගයේ ඉහළ අංගය ඉවත් කරන්න. සිරස් අන්තර්ගතය: 5

ක්‍රියාත්මක කිරීම අවසන් වූ පසු ගොල්ෆ් ස්ක්‍රිප්ට් පෙරනිමියෙන් තොගයේ ඉතිරිව ඇති ඕනෑම දෙයක් මුද්‍රණය කරයි.


3
කරුණාකර ගොල්ෆ් ස්ක්‍රිප්ට් කතා නොකරන අයට එය පැහැදිලි කළ හැකිද?
මැඩ්ටක්ස්

1
AdMadTux මෙන්න ඔබ යන්න.
aaaaaaaaaaa

1
ස්තූතියි. (. මම මගේ දෛනික සීමාව කරා නිසා, මෙහි බියර් තියෙන්නේ පසුව upvote කරන්නම්)
MadTux

5
සරල හා වංචනික, මම එයට කැමතියි. +1
seequ

9
මම කැමතියි එය ගණිතය හෝ අර්ථ නිරූපණයෙන් ඔබව රවටා ඇති බවක් නොපෙනේ, එය එතරම්
ward ජු

145

ජාවා

සෑම විටම ඔබේ යුගල වටය වටා යා යුතුය, ජනයෙනි

public class TwoPlusTwo {
  public static void main(String... args) {
    double two = two();
    System.out.format("Variable two = %.15f%n", two);
    double four = Math.ceil(two + two); // round just in case
    System.out.format("two + two = %.15f%n", four);
  }

  // 20 * .1 = 2
  private static double two() {
    double two = 0;
    for(int i = 0; i < 20; i++) {
      two += .1;
    }
    return two;
  }
}

ප්‍රතිදානය:

Variable two = 2.000000000000000
two + two = 5.000000000000000

පැහැදිලි කිරීම:

නැත, බැරෑරුම් ලෙස, ඔබ සැමවිටම ඔබේ යුගල වටය වට කළ යුතුය. two()ක්‍රමය සත්‍ය වශයෙන්ම නිපදවන බව පෙන්වීමට ඉලක්කම් 15 ප්‍රමාණවත් නොවේ 2.0000000000000004(16 ප්‍රමාණවත් වුවද).

අමු හෙක්ස් නිරූපණයන්හි, එය බිටු 1 ක වෙනසක් ( 4000000000000001සහ අතර 4000000000000000) පමණි ... එය Math.ceilක්‍රමවේදය 5 ක් නොව 4 ක් නැවත ලබා දීමට ප්‍රමාණවත් වේ .


61
Math.ceil(two + two); // round just in caseඔබ එහි කළ දේ මට පෙනේ
ටිම් එස්.

17
එකම නමක් සහිත ශ්‍රිතයක් සහ විචල්‍යයක් සෑදීම ... වාව්.
වින්‍යාස කරන්නා

107
f වින්‍යාස කරන්නා එය කිසිවක් නොවේ, පංතියක් පවා නම් කර නැත two. නිෂ්පාදන ශ්‍රේණියේ ජාවා යනු Two two = Two.two.two();Two.two TwoFactory වර්ගයට අයත් වේ.
ජැනිස් ෆ්‍රොයිස්

36
Two.Infinity.And.Beyond ()
CincauHangus

7
Im ටයිම්ස් ඔබ එහි කළ දේ මම සීමා කරමි
ඉන්පසු

135

බීබීසී බේසික්

සංස්කරණය කරන්න: ඇන්ඩ්‍රියා ෆෝල්ඩ්ස් සහ ස්ක්වාමිෂ් ඔසිෆ්‍රේජ් සඳහා, වෙනස් පරිවර්තකයෙකු භාවිතා කරමින් වඩාත් ඒත්තු ගැන්වෙන අනුවාදය: http://sourceforge.net/projects/napoleonbrandy/

  MODE 6
  VDU 23,52,254,192,252,6,6,198,124,0
  PRINT
  PRINT "2+2=";2+2
  PRINT "2+3=";2+3

enter image description here

මෙය ඇත්ත වශයෙන්ම අංක 4 මුද්‍රණය කරයි, නමුත් VDU 23ASCII 52 සඳහා අකුරු නැවත අර්ථ දක්වයි, එවිට එය 4 වෙනුවට 5 ලෙස පෙනේ. තිර මාදිලිය 6 සෞන්දර්යාත්මක හේතූන් මත තෝරාගෙන ඇත (සාධාරණ ප්‍රමාණයේ අක්ෂර.)

Http://bbcbasic.co.uk/bbcwin/bbcwin.html හි ඉමුලේටරය භාවිතා කරන මුල් රූපය . (තරමක් වෙනස් කේත සමඟ) සංස්කරණ ඉතිහාසයේ දැකිය හැකිය.


8
එම අකුරු වෙනස් වුවත්. නිවැරදි අකුරු භාවිතා කර එය සෑදිය හැකි යැයි ඔබ සිතනවාද?
ඇන්ඩ්‍රියා

Nd ඇන්ඩ්‍රියාෆෝල්ඩ්ස් මම bbcbasic.co.uk/bbcwin/bbcwin.html වෙතින් ඉමුලේටරය භාවිතා කරමි . එය 8x8 ජාලයක් මත මුල් බීබීසී මූලික අකුරු නැවත අර්ථ දැක්වීමට සහාය වේ. නමුත් ඉමියුලේටරයේ පෙරනිමි අකුරු පැහැදිලිවම 8x8 ට වඩා ඉහළ අගයක් ගනී. ඒ නිසා මට වඩා හොඳ රැකියාවක් කළ හැකි නමුත් එය පරිපූර්ණ නොවනු ඇත. 5 සහ 4 සඳහා අකුරු නැවත අර්ථ දැක්විය හැකි යැයි මම සිතමි, එවිට ඒවා එක හා සමාන වනු ඇත.
මට්ටමේ ගංගාව ශාන්ත

5
Nd ඇන්ඩ්‍රියාෆෝල්ඩ්ස් අනෙක් 5 න් වෙන් කළ නොහැකි බව ප්‍රශ්නය නොකියයි. මම හිතන්නේ මෙය සැබවින්ම ලක්ෂණයකි. 2+3=5සහ2+2=5'
බෙන් ජැක්සන්

1
මෙය බීබීසී මයික්‍රෝ හි මුල් අකුරු සමඟ VDU 23,52,126,96,124,6,6,102,60,0
ගැලපේ

forsqueamishossifrage තොරතුරු සඳහා ස්තූතියි. එය ඉමුලේටරයේ අකුරු සමඟ නොගැලපේ. ඔබේ උදාහරණය මගේ වගේම පික්සල් 7 ක් උසයි. මගේ මෙන් එය පතුලේ බිංදුවක් ඇත, නමුත් මට එය ටිකක් පහළට ගෙන යා යුතු බව පෙනේ (එනම්, පහළ වෙනුවට ශුන්‍යය ඉහළින් තබා ගන්න.) ප්‍රධාන වෙනසක් නම් මා සතුව 126,64 ක් ඇත ඔබ සතුව 126,96 ක් ඇති අතර, මගේ 2 වෙනුවට 6 ක් ඔබට තිබේ. එයට හේතුව මුල් බීබීසී අකුරු thick න සිරස් රේඛා ඇති බැවින් සම්මත රූපවාහිනී තිරයක තීරු 80 කින් පහසුවෙන් කියවිය හැකි වීමයි.
මට්ටමේ ගංගාව ශාන්ත

134

මොළය

+++++           +++++
    +               +    
    +     +         +     +++++
+++++    +++    +++++     
+         +     +         +++++
+               +
+++++           +++++.

ප්‍රතිදානය:

5

එය මෙහි උත්සාහ කරන්න .

මෙය ටිකක් සරල යැයි මම දනිමි, නමුත් මුල් ලිපියේ යෝජනා කර ඇති පරිදි මම නිර්මාණශීලී වීමට උත්සාහ කළෙමි.


1
මම මොළය නොදනිමි, මෙය තේරුම් ගැනීමට මට මිනිත්තු කිහිපයක් ගත විය. ASCII 53, හරිද?
මට්ටමේ ගංගාව ශාන්ත

4
ඔබට ඇති තාක් කල් ඔබට +++++.ඕනෑම දෙයක් පින්තාරු කළ හැකිය.
එඩ්වඩ් ෆ්ලොරිනෙස්කු

1
@steveverrill: ඔව් ඔබ හරි. (සහ BF හි ascii අක්ෂර ප්‍රතිදානය කිරීමට ඇති එකම ක්‍රමය මෙයයි).
tigrou


105

බාෂ්

මෙය , මම හිතන්නේ මම දිගු ගමනක් යා යුතු ක්‍රමයක් ...

Bash නොදන්නා අය සඳහා: $((...expr...))අංක ගණිත ප්‍රකාශන ඇගයීම සඳහා වන වාක්‍ය ඛණ්ඩයකි. විධාන රේඛා කැල්කියුලේටරය $(bc<<<...expr...)භාවිතා කරමින් එයම කරයි bc.

v=2                     #v is 2
v+=2                    #v is 4
v=$(($v*5))             #v is 20
v=$(($v-16))            #v is 4
v=$(bc<<<"sqrt($v)+2")  #v is 4 (sqrt(4) is 2)
v=$(bc<<<"$v/4+3")      #v is 4 (4/4 = 1)
echo '2+2=' $v          #So v is 4...?

ප්‍රතිදානය

2+2= 5

පැහැදිලි කිරීම

දෙවන පේළිය v සහ 2 එකතු කිරීම වෙනුවට 22 ක් බවට පත් කරයි.
සත්‍ය පැහැදිලි කිරීම:
v=2 #v is 2 v+=2 #v is 22 v=$(($v*5)) #v is 110 v=$(($v-16)) #v is 94 v=$(bc<<<"sqrt($v)+2") #v is 11 (by default, bc rounds to integers) v=$(bc<<<"$v/4+3") #v is 5 (11/4 is 2 with rounding) echo '2+2=' $v #TADAAAM


8
හොඳ ගණිත උපක්‍රමයක් එතනට යනවා!
ටොම්ස්මිං

5
omstomsmeding එය 4 වන පේළිය 15වෙනුවට දමා ඇති බව මට වැටහී ගියත් එය තරමක් විනෝදජනක 16විය. වාසනාවකට මෙන්, එය තවමත් ක්‍රියාත්මක වූයේ bcවටය

2
වලංගු වන මෙම ශෛලියේ පෙනුමට ඔබ කැමති දැයි බලන්න (ඩොලර් සං signs ා ඉවත් කරයි, සමාන ලකුණ වටා ඉඩ ලබා දේ සහ ඒකාබද්ධ පැවරුම් ක්‍රියාකරුවන්ට ඉඩ දෙයි): ((v = v * 5))හෝ((v *= 5))
වැඩිදුර දැනුම් දෙන තුරු විරාමයක් තබා ඇත.

2
හොඳයි, නමුත් මම +=වහාම කාරණය දුටුවෙමි .
nyuszika7h

2
@ardnew ඔව් තියෙනවා. පළමු පේළි දෙක ( v=2සහ v+=2): Bash විචල්‍ය හැසිරවීම ගැන නුහුරු කෙනෙකුට, එය සමාන වනු ඇත 2+2, නමුත් එය ඇත්ත වශයෙන්ම "2"+"2", එනම් "22". කේතයේ අනෙක් අදහස් වැරදියි මේ නිසා පමණි. මම දන්නවා, සෑම කෙනෙකුම මෙය විහිළුවක් ලෙස

101

පයිතන්

ජාවා පිළිතුරෙන් ආශ්වාදයක්:

>>> patch = '\x312\x2D7'
>>> import ctypes;ctypes.c_int8.from_address(id(len(patch))+8).value=eval(patch)
>>> 2 + 2
5

ජාවා මෙන්ම, CPython ද පළමු කුඩා සංඛ්‍යා කිහිපයේ ඕනෑම පිටපතක් සඳහා එකම මතක ස්ථානයක් භාවිතා කරයි (මතකය සේවය කරන්නේ නම් 0-255). මෙය ඇතුළට ගොස් එම මතක ස්ථානය හරහා කෙලින්ම සංස්කරණය කරයි ctypes. patchයනු අපැහැදිලි "12-7", len4 ක් සහිත නූලක් වන අතර එය eval5 දක්වා වේ.

වඩාත් අපැහැදිලි අනුවාදයකි

exec("\x66\x72\x6f\x6d\x20c\x74\x79\x70e\x73\x20\x69\x6d\x70\
\x6f\x72\x74\x20c\x5f\x69\x6e\x748\x20a\x73\x20x\x3bf\x72\x6f\
\x6d\x20\x73\x74\x72\x75c\x74\x20\x69\x6d\x70\x6f\x72\x74\x20\
ca\x6cc\x73\x69\x7ae\x20a\x73\x20x0\x3bx\x2ef\x72\x6f\x6d\x5f\
a\x64\x64\x72e\x73\x73\x28\x69\x64\x284\x29\x2bx0\x28\x27\x50\
\x50\x27\x29\x29\x2e\x76a\x6c\x75e\x3d5")

2 + 2 න් ඔබ්බට

OP සඳහන් කළ පරිදි, 2 + 2 තරමක් කම්මැලි විය හැකිය; එබැවින් අපයෝජනය සඳහා පිරිසිදු, බහුකාර්ය, බහු පළල කේත කිහිපයක් මෙන්න.

from __future__ import division, print_function
import struct
import ctypes
import random

# Py 2.7 PyIntObject:
# - PyObject_HEAD
#     - PyObject_HEAD_EXTRA [usually nothing unless compiled with DEBUG]
#     - (Py_ssize_t) ob_refcnt
#     - (_typeobject) *ob_type
# - (long) ob_ival

# two platform-sized (32/64-bit) ints (ob_refcnt and *ob_type from above)
offset = struct.calcsize('PP')

num = 60
nums = list(range(num))
addresses = [id(x) + offset for x in nums]
random.shuffle(nums)

for a, n in zip(addresses, nums):
    ctypes.c_ssize_t.from_address(a).value = n

print('2 + 2 =', 2+2)
print('9 - 4 =', 9-4)
print('5 * 6 =', 5*6)
print('1 / 0 =\n', 1/0)
print('(1 + 2) + 3 = ', (1+2)+3)
print('1 + (2 + 3) = ', 1+(2+3))
print('(2 + 3) + 1 = ', (2+3)+1)
print('2 + (3 + 1) = ', 2+(3+1))

පයිතන් 2.7 සමඟ ධාවනය කිරීම ... අවසානයේ එම රේඛාව නොසලකා හරින්න. මට පහසුවෙන් ප්‍රවේශ විය හැකි පද්ධති දෙක වන වින්ඩෝස් 64-බිට් සහ උබුන්ටු 32-බිට් වල ක්‍රියා කරයි.

$ python awful.py 
2 + 2 = 24
9 - 4 = 49
5 * 6 = 55
1 / 0 = 0.76

(1 + 2) + 3 =  50
1 + (2 + 3) =  68
(2 + 3) + 1 =  50
2 + (3 + 1) =  61
Segmentation fault (core dumped)

ද බහුල වීම විස්මයට අපි කොහෙද (එකතු කිරීමේ associative දේපල, බිඳ දැමිය හැක්කේ, එය + ) + = වන , + ( + 1 හා 2 වන දුටු ලෙස,) 1+2+3මාර්ග, නමුත් ගෙස්ටාපෝ අපි ද න්යාදේශ දේපල (එහිදී බිඳ ඇති + = b + a ; 2 වන සහ 3 වන පේළි). පයිතන් පරිවර්තකයා එකතු කිරීමේ ප්‍රකාශන වටා ඇති අතිරික්ත වරහන් නොසලකා හරිනු ඇත්දැයි මම කල්පනා කරමි.


96
ඔව්, අපි අනිවාර්යයෙන්ම සෙග්ෆෝල්ට් නොසලකා හරිමු ...

10
මෙය සැබවින්ම පයිතන් උපක්‍රමයක් නොවන අතර එය පයිතන් සී ක්‍රියාත්මක කිරීම සඳහා පමණක් විශේෂිත බව සඳහන් කිරීම වටී.
xApple

1
Ick නික් අහ්! හරි හරී. බිට් 64 කවුළු, 32-බිට් උබුන්ටු සැකසුම යටතේ ඔබ මුල් පිටපත උත්සාහ කර ඇති බව මගේ
හැඟීමයි

22
exec('\x66\x72\x6f\x6d\x20\x63\x74\x79\ \x70\x65\x73\x20\x69\x6d\x70\x6f\ \x72\x74\x20\x63\x5f\x69\x6e\x74\ \x38\x3b\x20\x69\x6d\x70\x6f\x72\ \x74\x20\x73\x74\x72\x75\x63\x74\ \x3b\x20\x63\x5f\x69\x6e\x74\x38\ \x2e\x66\x72\x6f\x6d\x5f\x61\x64\ \x64\x72\x65\x73\x73\x28\x69\x64\ \x28\x34\x29\x20\x2b\x20\x73\x74\ \x72\x75\x63\x74\x2e\x63\x61\x6c\ \x63\x73\x69\x7a\x65\x28\x27\x50\ \x50\x27\x29\x29\x2e\x76\x61\x6c\ \x75\x65\x3d\x35')නවීකරණය කරන ලද පළමු අනුවාදය වේ. අනවසරයෙන් ඇතුළුවීමේ තරඟ වලදී රතු කණ්ඩායම ලෙස / etc / profile හි $ PYTHONSTARTUP වෙතට දැමිය හැකි වන පරිදි මම මෙය සාදන ලදී.
ඩේවිඩ් ජේ ෆීලික්ස්

2
ඔව්. Sidenote, 1, 0 සහ -1 යනු පයිතන් වහාම විග්‍රහ කරන සංඛ්‍යා වලින් සමහරක් බව පෙනේ. මම හිතුවේ ඒවා පයිතන් වැඩසටහන් වල හැසිරීම නරක් කිරීමට නරකම වනු ඇති බවයි. මෙම දෝෂ අඩංගු කිරීම සඳහා fuckitpy භාවිතා කළ හැකිය .
ඩේවිඩ් ජේ ෆීලික්ස්

86

JavaScript:

g = function () {
  H = 3
  return H + H
}

f = function () {
  Η = 2
  return Η + H
}

// 3 + 3 = 6
alert(g())
// 2 + 2 = 5
alert(f())

එය http://jsfiddle.net/qhRJY/ හි පරීක්ෂා කරන්න.

එච් (ලතින් අකුරු කැපිටල් එච්) සහ Η (ග්‍රීක අකුරු කැපිටල් ඊටා) යන දෙකම ගෝලීය විෂය පථයට සකසා ඇත්තේ ඒවා var යතුරු පදය සමඟ ඇති කාර්යයන් සඳහා දේශීය ලෙස අර්ථ දක්වා නොමැති බැවිනි. ඒවා සමාන පෙනුමක් ඇති නමුත් ඒවා ඇත්ත වශයෙන්ම වෙනස් අගයන් 2 ක් සහිත විවිධ විචල්‍යයන් 2 කි. ඔබගේ බ්‍රව්සරයේ Ctrl + F භාවිතා කිරීමෙන් මෙම පිටුවේ H (eta) H (h) ට වඩා සැලකිය යුතු තරම් අඩු අගයක් පෙන්වන බව ඔබට පෙනී යනු ඇත.


4
Am සෑම් දෙදෙනාගේ පෙනුම එක හා සමාන වුවත්, ඇත්ත වශයෙන්ම ඒවා සම්පූර්ණයෙන්ම වෙනස් චරිත 2 කි. යුනිකෝඩ් හි එකම අක්‍ෂර ඇති නමුත් විවිධ කේත ලකුණු ඇති විවිධ අක්ෂර තිබිය හැකිය. මෙම විශේෂිත අවස්ථාවෙහිදී; අනෙක් "එච්" ඇත්ත වශයෙන්ම ග්‍රීක අකුරක් වන එටා ය .
d3dave

79
පා readers කයන් "ව්‍යාකූල" කිරීම සඳහා සමජාතීයතා භාවිතා කිරීම දැන් නිල වශයෙන් විහිළුවක් නොවේ .
ජෝන් ඩ්වොරක්

29
ජාවාස්ක්‍රිප්ට් හි හාස්‍යජනක ගෝලීය විචල්‍යයන් සමඟ සමපාතව සමජාතීය විහිලු බවට පත්වේ.
කොන්ස්ටන්ටින් වයිට්ස්

3
එය "යුනිකෝඩ් Η අක්ෂරය" නොවේ, එය ලතින් එච් සහ ග්‍රීක එටා (Η) ය.
ඔබේ මෝඩයන්ට හොඳින් සලකන්න

4
Ort වෝර්ටිකෝ හ්ම් ... නිතර අසන පැන ප්‍රශ්නයක් ප්‍රමාණවත් නොවන විට ඔබ කැමති කුමක්ද? නිති අසන ප්‍රශ්න ප්‍රශ්නයක් උපකාරක මධ්‍යස්ථානයෙන් සම්බන්ධ වී තිබේද? FAQ ටැගය යෙදිය හැක්කේ උපපරිපාලක වරුට පමණක් බව සලකන්න . පිළිතුර සඳහා - ප්‍රශ්නයේ සඳහන් වන්නේ “ලකුණු +5 හෝ ඊට වැඩි සහ අවම වශයෙන් දෙවරක් උඩු යටිකුරු කිරීම” යනුවෙනි. පිළිතුරට උඩුකුරු 27 ක් ඇති අතර පහත් අගයක් නොමැත. එය පිළිතුරේ සඳහන් නිර්ණායක සපුරාලීම හා සමාන වන අතර, 124 දෙනෙකු පමණක් 10 වතාවකට වඩා ඡන්දය ප්‍රකාශ කර ඇති වෙබ් අඩවියක මෙටා වෙබ් අඩවියේ ඇති ප්‍රශ්නයක දෙවන පැරණිතම පිළිතුර සඳහා ඉහළ අගයන් ඉතා සිත් ඇදගන්නා සුළුය. කොපමණ බව ඔබ කැමති? හැමෝම?
ජෝන් ඩ්වොරක්

72

ජාවාස්ක්‍රිප්ට්

function addDecibels(){return (10*Math.log10([].reduce.call(arguments,(p,c)=>p+Math.pow(10,c/10),0))).toFixed(1);}

alert( addDecibels(2,2) );

යටින් පවතින බිට් එක නම් එය සැබවින්ම යටපත් නොවීමයි - ඔබ වෙනත් 2dB ශබ්ද ප්‍රභවයකට 2dB ශබ්ද ප්‍රභවයක් එකතු කළහොත් එහි ප්‍රති ing ලයක් වශයෙන් ඒකාබද්ධ ශබ්දය 5dB වනු ඇත (ඔබ 30dB ප්‍රභව දෙකක් එකතු කළහොත් එහි 33dB) ඒවා ලොග් පරිමාණයෙන් මනිනු ලැබේ.

ඔබට එය දැක ගත හැකිය වෙනත් කැල්කියුලේටරයකින් .


හොඳයි, එය ඇත්ත වශයෙන්ම ඩෙසිබල් 5.01 ට වඩා වැඩිය, නමුත් 4 සිට ගණන් කිරීමට තරම් දුරයි.
ජෝ ඉසෙඩ්

68

PHP

echo '2 + 2 = ' . (2 + 2 === 4 ? 4 : 2 + 2 === 5 ? 5 : 'dunno');

නිපදවන:

2 + 2 = 5

මෙයට හේතුව PHP හි ත්‍රිකෝණ වමේ සිට දකුණට ගණනය කිරීම නිසා එය ඇත්ත වශයෙන්ම ය
(2 + 2 === 4 ? 4 : 2 + 2 === 5) // 2 + 2 is == 4, and 4 == true, therefore echo 5 ? 5 : 'dunno';


35
අනිවාර්ය phpsadness
wchargin

1
මම තවත් තියෙනවා PHP: උදාහරණයක්$a=2;echo "2+2=".$a++ + $a++;
avall

$ A ++ 3 ක් නිපදවන අතර එහි ප්‍රති result ලය 6 ක් වනු ඇති බව පැහැදිලිය. ඔබ සිතන දේ මට නොලැබේ.
Ozh

1
An ජැනස් පීඑච්පීසැඩ්නස් # 30 එය හොඳින් පැහැදිලි කරයි
wchargin


66

ජාවාස්ක්‍රිප්ට්

var total = 2 + 2;

if(total = 5)
{
    alert('I guess 2 + 2 = 5');
}
else
{
    alert('The universe is sane, 2 + 2 = 4');
}

73
=ඒ වෙනුවට ==, දැකීමට පහසු සහ අවංකවම උනන්දුවක් නොදක්වයි.
ඩාර්ක්නස්ෆිෂ් වෙත ළඟා වෙමින්

19
කෙසේ හෝ උඩු යටිකුරු කරන්න, මම එම වැරැද්ද බොහෝ දේ කරමි

6
මම තවමත් මෙම පිළිතුරට කැමතියි
සෑම් ක්‍රීමර්

5
මමත් ඒකට කැමතියි. මේ සෑම භාෂා භාවිතා =පමණක් assigment නමුත් සාපේක්ෂව ක්රියාකරු (උදා: පැස්කල්, SQL, වොලිබෝල්) ලෙස
avall

මට එය ඉතා පැහැදිලිව පෙනේ
ඔලිවර් නි

57

සී #

    static void Main(string[] args)
    {
        var x = 2;
        var y = 2;

        if (1 == 0) ;
        {
            ++x;
        }

        Console.WriteLine(x + y);
    }

7
අහෝ, රළු චරිත සහිත හොඳ පැරණි උපක්‍රමය. ඔබ සෑම තැනකම 1TBS භාවිතා කළ යුත්තේ එබැවිනි.
ජෝන් ඩ්වොරක්

11
@JanDvorak මෙය ක්‍රියාත්මක වන්නේ if ප්‍රකාශයෙන් පසුව ඇති අර්ධ සළකුණ නිසාද? මම C # නොදනිමි, නමුත් මම C ++ භාවිතා කර ඇත

5
ro ප්‍රොෆෙසර්ෆිෂ් මා උපකල්පනය කරන්නේ එයයි. අහඹු රැලි සහිත වරහන් FTW ඇතුළු කිරීමට ඔබට ඉඩ නොදෙන භාෂා.
ජෝන් ඩ්වොරක්

12
";" නොමැතිව if ප්‍රකාශය මඟින් කේත වාරණය ක්‍රියාත්මක වේද යන්න පාලනය කරයි. සමග ";" එහිදී, if ඇගයීමට ලක් කළ නමුත් ප්‍රති .ලය සමඟ කිසිවක් සිදු නොවේ. නොසලකා සෑම විටම කේත වාරණය ක්‍රියාත්මක වේ. C # හි, අහඹු කේත කොටස් තිබීම සම්පූර්ණයෙන්ම පිළිගත හැකිය.
ග්‍රැක්ස් 32

2
මම කලින් දවසේ මේකත් එක්ක ගියා. ;කර්සරය ඉදිරියට ගෙන යාම සඳහා හිස් ලූපයක් භාවිතා කරන බැවින් එය පසුපසින් ලූපයක් සඳහා මා සතුව තිබුණි . මම අහම්බෙන් අර්ධ මහා බඩවැල ඉවත් කළෙමි, සියල්ල පුපුරා ගියේය, ඒ මන්දැයි මට සිතාගත නොහැකි විය.
mpen

56

ඔබේ ජාවාස්ක්‍රිප්ට් ASCII කලාවෙන් සරසා ගැනීම භයානක ය.

  -~// JS  \\~-
 ~-// Maths \\-~
-~// Madness \\~-

     (2 + 2)

අදහස් ඉවත් කළ විට, ඉතිරි සංකේත සහ ක්‍රියාකරුවන්
-~~--~(2 + 2) මෙය තක්සේරු කරන්නේ ජේඑස් හි බිට්වයිස් නොට් ඔපරේටර් (~) සහ අවම ලකුණු අතලොස්සක් සමඟ ය.


3
මම කල්පනා කරමින් සිටියේ --ක්‍රියාකරු පිළිගත හැක්කේ කෙසේද යන්නයි Invalid left-hand side expression in prefix operation. කෙසේ වෙතත් ඔවුන් අතර සුදු පැහැති චරිතයක් ඇති බව මට වැටහුණි.
usandfriends

53

බාෂ්

#!/bin/bash

# strings of length 2
x="ab"
y="cd"

# add lengths by concatenation
c="$(cat<<<$x; cat<<<$y)"

# display the lengths of the parts and the sum
echo "${#x} + ${#y} = ${#c}"

ප්‍රතිදානය:

2 + 2 = 5

එක් එක් ප්‍රතිදානයෙන් catව්‍යංග නව රේඛාවක් ඇත, නමුත් අවසාන නව රේඛාව විධාන ආදේශනය මගින් ඉවත් කරනු ලැබේ$( )


මෙන්න තවත් දෙයක්:

#!/bin/bash

# Create an array of ascending integers
a=({1..10})

# Use the sum to index into the array
s="2 + 2"
i=$(($s))
echo "$s = ${a[$i]}"

බෑෂ් අරා ශුන්‍ය සුචිගත කර ඇත


3
මම ඇත්ත වශයෙන්ම පළමුවැන්නා අල්ලා ගත්තා, බාෂ් හි ගොල්ෆ් ක්‍රීඩා කරන විට මට එවැනි දේවල් සමඟ ගැටලු රාශියක් ඇති බැවින්. දෙවන එක් කල, එහිදී නොවේ පෙලගැස්මක් ශුන්ය-සුචිගත?

3
ro ප්‍රොෆෙසර්ෆිෂ් ඇපල්ස්ක්‍රිප්ට්, උදාහරණයක් ලෙස:set a to {1, 2, 3, 4, 5, 6, 7, 8} item 4 of a
ඩිජිටල් කම්පනය

12
Ig ඩිජිටල් ට්‍රෝමා ඇපල් පිටපත අමුතුයි

5
zsh1-සුචිගත අරා භාවිතා කරයි (සහ $arr[0]එය හුදෙක් සැකසූ හෝ නිර්වචනය නොකළ හෝ වෙනත් දෙයක්)KSH_ARRAYS විකල්පය සකසා , අරා 0-සුචිගත කර ඇත.
චෙප්නර්

4
ro ප්‍රොෆෙසර්ෆුෂ්: ලුවා සහ ෆෝට්‍රාන් දර්ශක 1 කි. මම 10 ට ගණන් කරන ඕනෑම වේලාවක, මම සෑම විටම 1 න් ආරම්භ කරමි, 0 නොව: D
කයිල් කැනෝස්

49

පර්ල්

# Generic includes
use strict;
use warnings;
use 5.010;
use Acme::NewMath;

# Ok, time to begin the real program.
if (2 + 2 == 5) {
    say 5;
}
else {
    say "Dunno...";
}

එය රඳා පවතින්නේ Acme :: NewMath නම් වූ CPAN මොඩියුලය මත ය . මොඩියුලයේ වැරදි ගොනු නම් නිසා, මෙය ක්‍රියාත්මක වන්නේ සිද්ධි සංවේදී නොවන ගොනු පද්ධති මත පමණි (වින්ඩෝස් හෝ මැක් ඕඑස් එක්ස් වැනි), නමුත් මම මෙහි මුල් මොඩියුලයේ කතුවරයාට දොස් පවරමි. Acme :: NewMath ඉන්ග්සොක් දෘෂ්ටිවාදයට අනුව ගණිතය ක්‍රියාත්මක කරයි.


16
මෙය තරමක් මෝඩය. කිසිවෙකු ඔබගේ ආනයන / ඇතුළත් කිරීම් දෙස බලන්නේ නැත.

44

ආර්

# add the mean of [1,3] to the mean of [4,0] (2 + 2)
mean(1,3) + mean(4,0)

ප්‍රතිදානය:

5

කේතය ඇත්ත වශයෙන්ම [1] හි මධ්‍යන්‍යය [4] ට එකතු කරයි. හා R මධ්යන්ය කාර්යය භාවිතා කිරීමේ නිවැරදි මාර්ගය වනු ඇත: mean(c(1,3)) + mean(c(4,0))මෙම වැනි ආර් සමහර වෙනත් ගණිතමය කාර්යයන්, මෙන් නොව වේ sum, maxහා min, කොහේද sum(1,3), max(1,3)සහ min(3,1)සියල්ලන්ම අපේක්ෂිත පිළිතුර ලබා දෙනු ඇත.


7
නරක නැහැ, මාව ටිකක් රැවටුවා.
qwr

37

ජාවා

public class Five {
    public static void main(final String... args) {
        System.out.println(256.0000000000002 + 256.0000000000002);
    }
}

ප්‍රතිදානය:

512.0000000000005

එකම ආකාරයේ යුගල භාවිතා කරන ඕනෑම භාෂාවකින් බොහෝ විට ක්‍රියා කරයි.


7
එය ඉතා අමුතු ප්‍රධාන අත්සනක්.
බර්ටි වීන්

10
ජාවා විවිධාකාර තර්ක විතර්ක යටතේ අරා ලෙස ක්‍රියාත්මක කරයි.
CodaFi

4
ඔබ යුගලයේ අවසන් ඉලක්කම් ගැන කතා කරන බව තේරුම් ගැනීමට මට මොහොතක් ගත විය. පළමු ඉලක්කම් නිවැරදිව එකතු කර ඇති බව මම දුටුවෙමි ( _2_56 + _2_56 = _5_12), නමුත් ඔබ අදහස් කරන්නේ ඊට වඩා වැඩි බව පෙනේ 256.000000000000_2_ + 256.000000000000_2_ = 512.000000000000_5_(සටහන: අවධාරනය කරන්නේ ඉලක්කම් “නිර්භීත” කිරීමට භාවිතා කරන බවයි.
ජස්ටින්

35

බෙෆන්ජ්

මෙය බෙෆන්ජ් හි ලියා ඇති නමුත් එය නිර්මාණය කර ඇත්තේ පයිතන් මෙන්ය.

#>>>>>>>>>>>>>>>>>v
# Calculate 2 + 2 v
#>>>>>>>>>>>>>>>>>v
def add(v,w):
    return v+w
 # I rewrote this 5 times and it still doesn't work

print add(2,2) #... Still not working

# email: MarkSmith@example.com

ක්‍රියාත්මක වන විට (නිවැරදි පරිවර්තකය සමඟ) වැඩසටහන මුද්‍රණය 5වේ.

පැහැදිලි කිරීම:

Befunge වැඩසටහනක් තනි අක්ෂර විධාන ජාලයකින් සෑදී ඇත. පළමු විධානය ඉහළ වම් කෙළවරේ ඇති අතර විධාන කියවීම දකුණට යයි. නමුත් වැඩසටහන් ක්‍රියාත්මක කිරීමේදී දිශාව වෙනස් විය හැකිය.

අක්ෂරවල පළමු පේළිය පමණක් වන අතර පළමු පේළියේ සිට ආරම්භ වන අක්ෂර තීරුව vක්‍රියාත්මක වේ. ප්‍රශ්නයේ ඇති අක්ෂර කරන්නේ:

#- ඊළඟ විධානය මඟ හරින්න
>- මෙතැන් සිට, වත්මන් විධානයෙහි දකුණට විධාන කියවනු ලැබේ
v- මෙතැන් සිට, විධාන වත්මන් විධානයට පහළින් කියවනු ලැබේ
5- 5 තොගයට තල්ලු කරන්න -
.අංකය පොප් කර මුද්‍රණය කරන්න තොගයේ ඉහළින්
@- වැඩසටහන අවසන් කරන්න
<space>- කිසිවක් නොකරන්න

ඔබ බෙෆුන්ජ් හි වැඩසටහන් කරන බව ඔබ දැන සිටියා නම්, මෙය කිසිවෙකු රැවටෙන්නේ නැත. නමුත් ඔබ මෙය හමු වී එය බෙෆන්ජ් බව නොදැන සිටියේ නම්, එය බොහෝ දුරට ඉඩ ඇත.


11
+1, මෙය ඉතා වංක ය, මන්ද යත් නිදොස් කිරීමේදී මූලාශ්‍ර කේතය ක්‍රියාත්මක කරන වැඩසටහන දෙස බලන්නේ කවුද?
මිස්ටර් ලෝර්

33

ජාවාස්ක්‍රිප්ට්

කේතය:

var a = 3;
а = 2;
a + а;

ප්‍රතිදානය:

5

ඔබට එය ඔබගේ කොන්සෝලය මත පරීක්ෂා කර බැලීමට හෝ මෙම ෆෙඩලය පරීක්ෂා කළ හැකිය


6
ඔබට සම්පතක් වෙත යොමු කිරීමට හෝ මෙය ක්‍රියාත්මක වීමට හේතුව මට පැහැදිලි කළ හැකිද? මම දන්නවා එය ක්‍රියාත්මක වන බව මම දන්නවා මම එහි ෆිදෙල් පරීක්‍ෂා කළ නමුත් එයට හේතුව මට තේරෙන්නේ නැහැ.
පවුල

29
"a" විචල්‍යය දෙවරක්ම සමාන නොවේ (සමාවෙන්න මම මෙය නරක් කරන්නේ නම්). සැබවින්ම සිනිඳු යුනිකෝඩ්
සෑම් ක්‍රීමර්

6
ඊලඟ චරිතය U+04316 - 6 ක් වන ආකාරය මම කැමතියි !
wchargin

73
පා readers කයන් "ව්‍යාකූල" කිරීම සඳහා සමජාතීයතා භාවිතා කිරීම දැන් නිල වශයෙන් විහිළුවක් නොවේ .
ජෝන් ඩ්වොරක්

40
An ජාන්ද්වොරක් එම පිළිතුර පළ කළේ මෙයින් පසුව ය; එය මෙහි අදාළ නොවේ.
දොරක්නොබ්

30

සී (ලිනක්ස්, ජීසීසී 4.7.3)

#include <stdio.h>

int main(void)
{
    int a=3, b=2;

    printf("%d + %d = %d", --a, b, a+b);  
}

එය 2 + 2 = 5 මුද්‍රණය කරයි

ඉතින් a = 2, හරිද?

gcc-4.7.3 දකුණේ සිට වමට ශ්‍රිත පරාමිතීන් ඇගයීමට ලක් කරයි. A + b තක්සේරු කළ විට, a තවමත් 3 කි.


16
නිශ්චිත නොවන හැසිරීමේ හොඳ භාවිතය
chbaker0

24

ෆෝට්‍රාන් 77

       program BadSum
       integer i,a,j
       common i,a
       a = 1
       i = 2
       call addtwo(j) 
       print *,j
       end

       subroutine addtwo(j)
       integer a,i,j
       common a,i
c since a = 1 & i = 2, then 2 + 1 + 1 = 2 + 2 = 4
       j = i + a + a
       end

commonකුට්ටි සම්මත අපයෝජනය : ඇණවුම් කරුණු; මම සබ්ට්‍රවුටින් හි බ්ලොක් එකේ ඇණවුම මාරු කළෙමි 1 + 2 + 2.


6
An ජැන්ඩ්වොරක්: හාහා, මට වචනානුසාරයෙන් නැවත අර්ථ දැක්විය හැකි 2=3
ෆෝට්‍රාන්

1
Yle කයිල්කනෝස්, ඔබේ පෝස්ට් ෆෝට්රාන් හි ලියා ඇති බව දුටු විට මෙය සිදුවනු ඇතැයි මම සිතුවෙමි.
danmcardle

Yle කයිල්කනෝස් එය කරන්න!
RR

1
Yle කයිල්කනෝස්: එය පූර්ණ සංඛ්‍යා සමඟ ක්‍රියා කළේද නැතහොත් පාවෙන ඒවා පමණක්ද? මම හිතන්නේ ඒ යුගයේ යන්ත්‍රයක, පූර්ණ සංඛ්‍යාවක් සහ ලිපිනයක් එකම ප්‍රමාණයක් විය හැකි නමුත් පාවෙන ප්‍රමාණයට වඩා කුඩා විය හැකි බැවින් පාවෙන සාහිත්‍යකරුවන් සංචිත කිරීම අවකාශය ඉතිරි කර ගත හැකි නමුත් int සාක්ෂරතාවන් සංචිත කිරීම එසේ නොවේ.
සුපර් කැට්

2
Yle කයිල්කනෝස්: මගේ අවබෝධය නම් සම්පාදකයින් වචනානුසාරයෙන් පැවරුමකට ඉඩ නොදෙන බවයි, නමුත් ශ්‍රිත ඇමතුම් යොමු කිරීම මඟින් සම්මත වන අතර පාවෙන ලක්ෂ්‍යයක් ශ්‍රිතයක් වෙත යැවීම සාමාන්‍යයෙන් පාවෙන තටාකයක වටිනාකම ලිපිනය පසු කරයි. -පොයින්ට් ලිටරල්. ශ්‍රිතයකට පූර්ණ සංඛ්‍යාවක් ලබා දීමෙන් එය සංචිත වීමට හේතු වේ, නමුත් පූර්ණ සංඛ්‍යා භාවිතා කළ බොහෝ කේත වලට අගයන් කෙලින්ම ඇතුළත් වේ.
සුපර් කැට්

24

පයිතන්

කේත මුද්‍රණ 5 මෙම කාර්යය සඳහා නිවැරදි පිළිතුර වේ.

def int(a):
    return ~eval(a)

def add(a,b):
    return int(a)+int(b)

print ~add("2","2")

සංස්කරණය කරන්න: මෙන්න විකල්ප අනුවාදය වන අතර එය පූර්ණ සංඛ්‍යා එකතු කරයි.

def int(a): return ~eval(`a`)
def add(a,b): return int(a)+int(b)
print ~add(2,2)

ටිල්ඩ් යනු අසමාන ප්‍රතිලෝම ක්‍රියාකරු වන අතර එය නැවත පැමිණේ -x-1, එබැවින් පළමු පියවර ලබා ගැනීම -6සහ පසුව වෙනත් ක්‍රියාකරුවෙකු සමඟ printක්‍රියා කිරීම5


~eval(`a`)සාධාරණ වෙනුවට ඇයි ~a?
ඇන්ඩ්‍රියා කෝබෙලිනි

2
මට අවශ්‍ය වූයේ යම් int()ක්‍රියාකාරීත්වයක් අතහැර eval()ආදානය දැඩි සංඛ්‍යාවක් නම් එම කාර්යය ඉටු කිරීමයි :)
avall

24

රූබි

class Fixnum
    alias plus +

    def + (other)
        plus(other).succ
    end
end

puts 2 + 2

මෙය සියලු එකතු කිරීම්වල ප්‍රති result ලය වන අතර එහි පළමු තර්කය Fixnum (එය 2, අවම වශයෙන් MRI හි) 1 කින් වැඩි කරයි.

මෙහි අතුරු ආබාධ ජාවා අනුවාදයට වඩා දරුණු ය.


23

රූබි

රූබිට පළමු පන්තියේ පරිසරයක් ඇත. මෙයින් අදහස් කරන්නේ බොහෝ දේ. එයින් අදහස් කරන්නේ බොහෝ දේ කළ හැකි බවයි ... සමහර විට එසේ නොකළ යුතුය.

def mal(&block)
    block.call
    for v in block.binding.eval("local_variables");
      block.binding.eval('if ' + v.to_s + ' == 4 then ' + v.to_s + ' = 5 end')
    end 
end

a = 2 + 2;
b = 2 + 4;
puts "2 + 2 = ", a
puts "2 + 4 = ", b

mal do
  puts "But in 1984..."
end

puts "2 + 2 = ", a
puts "2 + 4 = ", b

මෙහි ප්‍රතිදානය:

2 + 2 = 
4
2 + 4 = 
6
නමුත් 1984 දී ...
2 + 2 = 
5
2 + 4 = 
6

මෙහි ඇති ප්‍රීතිය හා අන්තරායන් ගැන වැඩි විස්තර දැන ගැනීමට ඔබට අවශ්‍ය නම්, රූබි කොන්ෆ් 2011 රූබි සාධාරණව තබා ගැනීම සහ වියුක්ත මිථ්‍යාදෘෂ්ටික බ්ලොග් අඩවියෙන් පළමු පන්තියේ පරිසරය කියවන්න .


එසේම:class Fixnum; def +(n) 5 end end; 2 + 2 # => 5
film42

1
විශේෂිත අවස්ථාව සඳහා පමණක්:class Fixnum; alias_method :orig_plus, :+; protected :orig_plus; def +(n) self == 2 && n == 2 ? 5 : self.orig_plus(n) end end
ගැරී එස්. වීවර්

21

යෝජනා ක්රමය

(define 2+2 5)
2+2 ;=> 5

9
ඒයි! 2+2ඔබ තොල් එකතු කිරීම කරන්නේ කෙසේද යන්න නොවේ!
ජෝන් ඩ්වොරක්

1
ඉතින් කුමක් ද? පෙනෙන ආකාරයට එය 2 සිට 2 දක්වා එකතු කරයි.
හෝලත්

119
An ජැන්ඩ්වොරක් මම කවදාවත් ලිස්ප් භාවිතා කර නැත, නමුත් මම තේරුම් ගත් පරිදි එය සමාන ය ((((2))(()()))()()(()((((+))))()(((()(())((((2)))))()))(()))).
භූගත මොනෝරේල්

2
"2 + 2 ලෙස 5 ලෙස නැවත අර්ථ දැක්වීම එතරම් නිර්මාණාත්මක නොවේ! එය දෙවරක් සිතා බලන්න එපා, වෙනත් දෙයක් උත්සාහ කරන්න." --- හොඳයි, R5RS හි මට 2 + 2 හෝ 2 වෙනුවට + නැවත අර්ථ දැක්විය හැකිය. පිළිතුර මෙහි ඇත: pastebin.com/KHtm9Jmv
Felipe

1
Answer ෆෙලිපේ මිකරෝනිලි, මගේ පිළිතුරෙන් පසුව විවරණය කර ඇති බැවින් එය ගණන් නොගනී.
හෝලෙත්

20

සී #

var c = Enumerable.Range(2, 2).Sum();

හුරුපුරුදු නැති කෙනෙකුට, මෙය 2 සිට ආරම්භ වන හා අවසන් වන පරාසයක් ලබා ගන්නා බවක් පෙනේ. යථාර්ථයේ දී, එය 2 න් ආරම්භ වී අංක දෙකක් සඳහා යයි. එබැවින් 2 + 3 = 5.


6
2 සිට ආරම්භ වන හා අවසන් වන පරාසයක් සාධාරණ වනු ඇත { 2 }, එසේ නොවේ ද?
Paŭlo Ebermann

1
Ŭ PaŭloEbermann Enumerable.Rangeආරම්භයක් හා අවසානයක් නොගනී, එය ආරම්භයක් සහ ගණනය කිරීමක් අවශ්‍ය වේ (ගණනය කරනු ලබන මූලද්‍රව්‍යයන්ගේ).
මාස්ටර්මාස්ටික්

14
Aster මාස්ටර්මාස්ටික් මම පිළිතුරේ පැහැදිලි කිරීමෙන් මෙය තේරුම් ගත්තා. නමුත් "පවුල් නොවන කෙනෙකුට" අර්ථය එවැනි පරාසයක් විය යුතුය (පිළිතුරෙහි පැහැදිලි කිරීම අනුව), සහ මගේ තර්කය නම් අපේක්ෂිත
ප්‍රති result ලය

1
@ PaŭloEbermann, ඔව් එය දෙස බැලීමට එක් ක්‍රමයක්. මම සිතුවේ එය එකතු කිරීම සඳහා සංඛ්‍යා සපයන බවක් පෙනෙන්නට ඇති බවයි. එබැවින් ගණන් කළ හැකි.රැං (1,2,3,4) 1 ට ආරම්භ වන අතර 4 ට අවසන් වන අතර එය 10 දක්වා එකතු වේ.
පෝල්

19

එෆ් #

පහත දැක්වෙන ප්‍රකාශය fsi හි ඇතුළත් කරමු:

let ``2+2``= 5

ප්‍රතිදානය:

val ( 2+2 ) : int = 5

18

සී

int main() {
        char __func_version__[] = "5";  // For source control
        char b[]="2", a=2;
        printf("%d + %s = %s\n", a, b, a+b);
        return 0;
}

මෙම 5මම බය නෑ, හොඳින් සඟවා නැත. ප්‍රශස්තිකරණය සමඟ ක්‍රියා නොකරයි.


1
හොඳයි; නිර්වචනය නොකළ හැසිරීමට ඉඩ නොදෙන්නේ නම් මට ඉහළට ඔසවා තැබිය නොහැක.
මේ

2
යූබී මත යැපීම තහනම් කර ඇත්තේ කොතැනදැයි මට නොපෙනේ. බොහෝ කේත ගොල්ෆ් පිළිතුරු යූබී මත රඳා පවතින අතර එය කිසියම් සාධාරණ වේදිකාවක් මත නිරන්තරයෙන් සිදුවන තාක් කල් එය හරි යැයි මම සිතමි.
ugoren

2
යූබී මත යැපීම තහනම් කර ඇත්තේ කොතැනදැයි මට නොපෙනේ. මම ඒ ගැන කිසිදු නීති රීති සොයා ගත්තේ නැත. එය පැහැදිලි කළ හැකි නම් හොඳයි. බොහෝ කේත ගොල්ෆ් පිළිතුරු යූබී මත රඳා පවතින අතර, එය කිසියම් සාධාරණ වේදිකාවක් මත නිරන්තරයෙන් සිදුවන තාක් කල් එය හරි යැයි මම සිතමි .
මේ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.