অনুকরণ করুন মহাবিশ্ব!


103

টিউরিং-সম্পূর্ণ ভাষার একটি দুর্দান্ত সম্পত্তি হ'ল এটি সমগ্র ইউনিভার্সের সিমুলেশন সহ কোনও প্রোগ্রাম লেখার জন্য ব্যবহার করা যেতে পারে।

আপনার কাজটি হুবহু এটি করা: একটি প্রোগ্রাম লিখুন যা মহাবিশ্বকে অনুকরণ করে


দ্রষ্টব্য: যদিও আমার সন্দেহ না এবং আপনি এই কাজের সাধা করতে সক্ষম হবেন, আজকাল আমি যাচাই করতে সমস্ত 10 কিনা যথেষ্ট অতিরিক্ত সময় নেই 90 আপনার সিমুলেশন মধ্যে কণার তারা কি সত্যিই কি করা উচিত না। অতএব, কেবলমাত্র পরীক্ষা এবং মূল্যায়নকে সহজ করার জন্য, যদি আপনার মহাবিশ্ব সিমুলেটরটি কেবল একটি একক সূচনা কণার সাথে কাজ করে তবে তা যথেষ্ট। বিষয়গুলি আকর্ষণীয় রাখতে, ধরে নেওয়া যাক এই কণাটি সম্প্রতি আবিষ্কার করা হিগস বোসন।

আপনার মহাবিশ্বের মাঝামাঝি প্রায় 120 জিভের একক হিগস বোসন ছাড়া আর কিছুই শুরু হয় না। আউটপুটটি বেশি দীর্ঘ না করার জন্য, আসুন এই মহাবিশ্বটি 5.4 × 10 −44 সেকেন্ডের "সাধারণ ক্লক রেট" এর পরিবর্তে কেবল 10 -25 সেকেন্ডে টিক দিন ..

এই হিগস বোসনটি শীঘ্রই বা পরে ক্ষয় হয়ে যাবে কারণ এটির 1.6 × 10 −22 সেকেন্ডের অর্ধ-জীবন রয়েছে , তাই সিমুলেশনের প্রতিটি টিকটিতে এটি ক্ষয় হওয়ার একটি সম্ভাবনা 0.0433% রয়েছে। এটি কী ক্ষয় হবে তা আপনি এখানে পরীক্ষা করতে পারেন । কেন্দ্রীয় এবং সরলীকৃত প্রয়োজনীয়তা পেতে, আমি আপনার ব্যবহার করা উচিত শাখা অনুপাতের তালিকা দিচ্ছি:

সিমুলেশন চলছে

সিমুলেশনের প্রতিটি টিক এ, হিগস বোসনের ক্ষয় হওয়ার একটি 0.0433% সম্ভাবনা রয়েছে। যদি এটি ঘটে থাকে তবে এটি তালিকাভুক্ত সম্ভাব্যতাগুলির সাথে নিম্নলিখিত কণায় ক্ষয় হয়ে যাবে (আপনার এই নামগুলি আউটপুট ব্যবহার করা উচিত):

  • নীচের কোয়ার্ক + নীচের অ্যান্টিকোয়ার্ক (.8৪.৮%)
  • 2 ডাব্লু বোসন (14.1%)
  • 2 গ্লুন (8.82%)
  • তাউ লেপটন + অ্যান্টিটাউ লেপটন (7.04%)
  • কবজ কোয়ার্ক + কবজ পুরানো (৩.২27%)
  • 2 জেড বোসন (1.59%)
  • 2 টি ফোটন (0.223%)
  • 1 জেড বোসন + 1 ফোটন (0.111%)
  • মিউন + অ্যান্টিমুন (0.0244%)
  • শীর্ষ কোয়ার্ক + শীর্ষ প্রতিস্থাপন (0.0216%)

মোট 100% এর জন্য।

এর মধ্যে কিছু কণা আরও ক্ষয় হবে।

ডাব্লু বোসন : 10-25 সেকেন্ডের অর্ধ-জীবন , এর অর্থ হ'ল সমান সম্ভাবনা সহ নিম্নলিখিতগুলির মধ্যে প্রতিটি টিকটিতে ক্ষয় হওয়ার 50% সুযোগ রয়েছে:

  • পজিট্রন + নিউট্রিনো
  • অ্যান্টিমুন + নিউট্রিনো
  • অ্যান্টিটা লেপটন + নিউট্রিনো

জেড বোসন : 10-25 সেকেন্ডের অর্ধেক জীবন , এর অর্থ নিম্নলিখিত প্রতিটিগুলির মধ্যে টিক ক্ষয় হওয়ার 50% সুযোগ রয়েছে:

  • নিউট্রিনো + অ্যান্টিনিউট্রিনো (20.6%)
  • ইলেক্ট্রন + পজিট্রন (3.4%)
  • মিউন + অ্যান্টিমুন (৩.৪%)
  • তাউ লেপটন + অ্যান্টিটাউ লেপটন (৩.৪%)
  • ডাউন কোয়ার্ক + ডাউন এন্টিকোয়ার্ক (15.2%)
  • অদ্ভুত কোয়ার্ক + অদ্ভুত প্রাচীনকাল (15.2%)
  • নীচের কোয়ার্ক + নীচে প্রাচীনকাল (15.2%)
  • আপ কোয়ার্ক + আপ পুরানো (১১.৮%)
  • কবজ কোয়ার্ক + কবজ পুরানো (১১.৮%)

শীর্ষ কোয়ার্ক : 5 × 10 -25 সেকেন্ডের অর্ধ-জীবন , এর অর্থ হ'ল সমান সম্ভাবনা সহ প্রতিটি টিকের ক্ষয় হওয়ার জন্য একটি 12.95% সুযোগ, যার সমান সম্ভাবনা রয়েছে:

  • ডাব্লু বোসন + ডাউন কোয়ার্ক
  • ডাব্লু বোসন + অদ্ভুত কোয়ার্ক
  • ডাব্লু বোসন + নীচের কোয়ার্ক

অবশ্যই, ডাব্লু বোসনও শীঘ্রই ক্ষয় হবে ...

শীর্ষ antiquark শীর্ষ কোয়ার্ক একইভাবে আচরণ করবে: এটি একটি ডব্লিউ বোসন এবং বিজ্ঞাপন / গুলি / খ antiquark মধ্যে ক্ষয়।

অন্যান্য সমস্ত কণা (সুতরাং জেড এবং ডাব্লু বোসন এবং শীর্ষ কোয়ার্ক ব্যতীত) অর্ধ জীবনের দীর্ঘ পরিমাণের অর্ডার দীর্ঘতর থাকে, ফলে আউটপুটকে বিশৃঙ্খলা না করার জন্য সেগুলি সমস্তই আমাদের সিমুলেশনের জন্য স্থিতিশীল বলে বিবেচিত হয়

মহাবিশ্বটি মূলত শূন্য হওয়ায় সমস্ত কণাগুলির নিজেদের জন্য পর্যাপ্ত জায়গা থাকবে এবং একে অপরের সাথে যোগাযোগ করবে না। সুতরাং বিভক্ত হওয়ার সম্ভাবনা সহ সমস্ত স্বতন্ত্র কণা প্রতিটি ক্ষেত্রে একে অপরের থেকে স্বতন্ত্র।

আউটপুট:

সিমুলেশনের প্রতিটি টিক, আপনাকে সিমুলেটেড মহাবিশ্বের সামগ্রীগুলি একটি নতুন লাইনে মুদ্রণ করতে হবে। উদাহরণ স্বরূপ:

The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 2 W bosons.
The universe contains 2 W bosons.
The universe contains 1 W boson, 1 positron and 1 neutrino.
The universe contains 1 positron, 1 antitau lepton and 2 neutrinos.
Simulation ended after 0.8 yoctoseconds.

লাইনের কণার ক্রমটি গুরুত্বপূর্ণ নয়। বিন্যাসটি অবশ্য বিরামচিহ্ন এবং বহুবচন সহ, উপরের উদাহরণের মতো ঠিক হওয়া উচিত । যদি আপনি একটি সম্পূর্ণ (মিনি-) মহাবিশ্বকে অনুকরণ করেন তবে এটি দেখতে সুন্দর লাগবে (এবং আমি পর্যাপ্ত কঠোর আউটপুট প্রয়োজনের অপব্যবহারটি দূর করতে চেয়েছিলাম)

প্রতিটি লাইন 0.1 ইয়োকটোসেকেন্ডের সাথে মিলে যায় তবে আপনার প্রোগ্রামটি আউটপুট প্রিন্ট করতে যদি এর চেয়ে বেশি সময় লাগে তবে আপনাকে ক্ষমা করা হবে।

সিমুলেশনটি শেষ হয় যখন কেবল "স্থিতিশীল" কণা থাকে।

স্কোরিং

স্ট্যান্ডার্ড কোড গল্ফ বিধি প্রযোজ্য।

এলোমেলো সংখ্যা জেনারেটর সিউডো-এলোমেলো হতে পারে, তবে ভাষা অবশ্যই এটি বীজ করতে হবে যদি ভাষা ডিফল্টরূপে এটি বীজ না করে। আপনার আরএনজির সম্ভাবনা বিতরণ অবশ্যই অভিন্ন হবে be

  • প্রোগ্রামটি কোনও ইনপুট হিসাবে কোনও পূর্ণসংখ্যার গ্রহণ করে এবং সেই সাথে অনেকগুলি হিগস বোসন দিয়ে শুরু করলে কোড আকারে আপনি একটি বোনাস -10% পাবেন।

টুরিং মেশিন উত্সাহীদের জন্য ব্যতিক্রম।

যারা প্রকৃত ট্যুরিং মেশিন বা অনুরূপ ভাষা (ব্রেইনফাকের মতো) দিয়ে ভাগ্য চেষ্টা করার সাহস করেন তাদের জন্য নিম্নলিখিত নিয়মের পরিবর্তনগুলি দ্বারা তাদের কাজটি আরও সহজ করা হয়েছে (কেবল তখন ভাষা প্রযোজ্য যদি ব্রেইনফাক-ডেরিভেটিভ বা অন্যথায় খুব সরলীকৃত টুরিং- মেশিন, অ্যাসাইনমেন্টে অক্ষম, একটি ALU এর অভাব, এবং টেপটিতে মানগুলি কেবলমাত্র একটি দ্বারা বাড়ানো এবং হ্রাস করা যেতে পারে) :

  • কণার নামগুলি ডি, এস, বি, টি, ইউ, সি কোয়ার্কের জন্য, ভি নিউট্রিনোর জন্য টি, টাউ লেপটনের জন্য টি, মিউন এর জন্য জি, গ্লিয়নের জন্য জি, ফোটনের জন্য পি, জে, ডাব্লু এবং এইচ বোসন, - ইলেকট্রনের জন্য এবং + পজিট্রনের জন্য। প্রতিটি টিক এ 0 বা 1 এর মানযুক্ত একটি ইনপুট স্ট্যান্ডার্ড ইনপুট থেকে সরবরাহ করা হয়, এটি সূচিত করে যে তালিকার প্রথম অস্থির কণা ক্ষয় হয় কিনা।

উদাহরণস্বরূপ আউটপুট তাই হয়ে যাবে

H
H
H
H
W W
W W
W + n
+ !T n n

76
গণিতের কি কোনও SimulateUniverseঅন্তর্নির্মিত কার্য রয়েছে?
ডিজিটাল ট্রমা

14
সুতরাং ... এই মহাবিশ্বের একটি বড় ঠুং শব্দ নেই ... - শুধু কিছুটা ঠুং ঠুং শব্দ?
স্তর নদী সেন্ট

3
যদি একটি শীর্ষ কোয়ার্ক ক্ষয় হয়, তবে একটি শীর্ষস্থানীয় পুরানো ক্ষয়টিও উচিত নয়? আমার ধারণা এটি কোনও বিষয় নয়, নিয়মগুলি বিধিগুলি। তবে পদার্থবিজ্ঞান পদার্থবিজ্ঞান (এবং আমার কণা পদার্থবিজ্ঞান খুব ভাল নয় তবে এটি অদ্ভুত বলে মনে হয়))
স্তর নদী সেন্ট

23
আমাদের পুরো মহাবিশ্ব একটি কোড গল্ফ চ্যালেঞ্জ হতে পারে।
coredump

18
আমি মনে করি আমি এই চ্যালেঞ্জের মধ্যে সেরা হয়ে উঠছি ...;)
বিটা ডেকায়

উত্তর:


1

পাইথ , 572 * 0.9 = 514.8 বাইট

Jm?tld,hd,-1^.5c1shced\ sm*]<k2s>k2tced\ dcR\,cu:GhHtHc"A76 !B17 !C1 v!D_top !E00 !F bosR!GmuR_!Ineutrino_!Jtau leptR_!KQ_charm !LQ_strange !MQ_down !NQ_up !OQ_bottom !Panti!Qquark!Ron"\!"HiggsF,16Efg3240Ebb705Epp441Eqr352ER16350 cc7950 ss1115 cs555 tu122 de108_WF,CxCuCr1_ZF,Cw103 yxBtuBqrBjkAlmAfgAhi59 R59DQ,5 bj1 bl1 bf1DPOOPNNPMMPLLPKKPQ_gluR_JPJphotR_GPGIPIpositrR_electrR"\_L%"The universe contains %s.":j", "fT.e?bs[b\ h@Jk?tb\s"")0b",(?!.*,)"" and"K+Q*]Z24Ws<K4yK=+Z1Vs.em?>O1.0he@JkY,kOee@Jkb<K4IN XhNK_1 XRK1xLGeN;yK%"Simulation ended after %s yoctoseconds."cZT

-10% বোনাসের জন্য যোগ্যতা অর্জন করে। এটি এখানে অনলাইনে ব্যবহার করে দেখুন , বা হিগস বোসনের অর্ধেক জীবন এখানে 1 সেকেন্ড করে দেখুন (আউটপুটে কম পুনরাবৃত্তি এবং আরও আকর্ষণীয় মহাবিশ্ব!) তৈরি করুন।

আমি নিশ্চিত যে এটি সর্বোত্তম, বিশেষত অভিধান সংকোচন থেকে অনেক দূরে, তবে আমি ইতিমধ্যে এটিতে পর্যাপ্ত সময়ের চেয়ে বেশি সময় নষ্ট করেছি, সুতরাং উন্নতির পরামর্শগুলি স্বাগত are

প্রোগ্রামটি তিন ভাগে বিভক্ত - অভিধান প্রস্তুতি, আউটপুট ফাংশন সংজ্ঞা এবং সিমুলেশন এক্সিকিউশন।

অভিধান প্রস্তুতি

Jm?tld,hd,-1^.5c1shced\ sm*]<k2s>k2tced\ dcR\,cu:GhHtHc"A76 !B17 !C1 v!D_top !E00 !F bosR!GmuR_!Ineutrino_!Jtau leptR_!KQ_charm !LQ_strange !MQ_down !NQ_up !OQ_bottom !Panti!Qquark!Ron"\!"HiggsF,16Efg3240Ebb705Epp441Eqr352ER16350 cc7950 ss1115 cs555 tu122 de108_WF,CxCuCr1_ZF,Cw103 yxBtuBqrBjkAlmAfgAhi59 R59DQ,5 bj1 bl1 bf1DPOOPNNPMMPLLPKKPQ_gluR_JPJphotR_GPGIPIpositrR_electrR"\_

381 বাইট ধরে এটি সমাপ্ত কোডের বৃহত্তম বিভাগ। অভিধানটি নিম্নলিখিত স্ট্রিং ব্যবহার করে নির্মিত হয়েছে:

Higgs boson,1600 fg324000 bb70500 pp44100 qr35200 on16350 cc7950 ss1115 cs555 tu122 de108_W boson,1 vx1 vu1 vr1_Z boson,1 vw103 yx17 tu17 qr17 jk76 lm76 fg76 hi59 on59_top quark,5 bj1 bl1 bf1_top antiquark_bottom quark_bottom antiquark_up quark_up antiquark_down quark_down antiquark_strange quark_strange antiquark_charm quark_charm antiquark_gluon_tau lepton_antitau lepton_photon_muon_antimuon_neutrino_antineutrino_positron_electron

স্ট্রিংটি কণাগুলির একটি আন্ডারস্কোর বিচ্ছিন্ন তালিকা এবং এর কণা যদি অস্থির হয় তবে এর আচরণ - একটি স্থান পৃথকীকরণের তালিকা যার অর্ধেক জীবনের সিমুলেশন টিক্স থাকে যার পরে এটি পৃথক পৃথক প্রোবিলিগুলি এবং তার প্রতিটি পৃথক প্রোবিলিগুলি থাকে। প্রতিটি কণার সাথে এর সাথে যুক্ত একটি একক-বর্ণের কোড থাকে, নিম্নের বর্ণমালায় তালিকাভুক্ত তালিকায় তাদের অবস্থান অনুসারে দেওয়া হয় - সুতরাং হিগস বোসন হ'ল a, ডাব্লু বোসন হ'ল b, ইলেক্ট্রন পর্যন্ত সমস্ত উপায় y

ক্ষয়ের সম্ভাবনাগুলি সংরক্ষণ করার পরিবর্তে অর্ধ জীবন পরিবর্তিত হয় এবং অভিধানটি প্রক্রিয়া করার সময় সম্ভাবনা গণনা করা হয়। ব্যবহৃত সূত্রটি হ'ল P=1-(1/2)^(1/h)যেখানে Pপ্রতি টিক ক্ষয় হওয়ার সম্ভাবনা রয়েছে এবং টিক্সে hপরিমাপ করা কণার অর্ধেক জীবন।

অস্থির কণাগুলি তালিকার প্রথম চারটি। এই কণাগুলির সংখ্যাটি যখন সিমুলেশন শেষ হয় তখন নির্ধারণ করে যে তালিকাটির শুরুতে এগুলি পরে তা পরীক্ষা করে নেওয়া সহজ করে তোলে।

সমস্যাটি হ'ল এই স্ট্রিংটি বিশাল - 436 বাইট! - এবং পাইথের অন্তর্নির্মিত স্ট্রিং সংক্ষেপণটি ব্যবহার করা আসলে বাইট গণনাটি বাড়ায়, কারণ এটি বহু বহু-বাইট অক্ষর ব্যবহার করে। আমি একটি অপেক্ষাকৃত সাধারণ পুনরাবৃত্ত অভিধান অভিধান সংক্ষেপণ স্কিম স্থির করেছি। স্নিপেট u:GhHtHc"xxx"\!"yyy"নিম্নলিখিত হিসাবে এটি সঙ্কুচিত:

u:GhHtHc"xxx"\!"yyy"   xxx -> dictionary, yyy -> encoded string
       c"xxx"\!        Chop the dictionary on !
u              "yyy"   Reduce the above, with initial state as encoded string, using:
 :G                      In the current string, replace...
   hH                    ... the first character of the dictionary entry...
     tH                  ... with the remainder of the dictionary entry

আমি নির্বাচিত অভিধান এন্ট্রিগুলি কেবল আমার স্বজ্ঞাততা এবং কিছু পরীক্ষা এবং ত্রুটির ভিত্তিতে তৈরি, সুতরাং আমি নিশ্চিত যে উন্নতির জন্য এখানে প্রচুর জায়গা রয়েছে।

ডিকম্প্রেসড অভিধান স্ট্রিংটি নীচে বর্ণিত হিসাবে ব্যাখ্যা করা এবং সংরক্ষণ করা হয়:

Jm?tld,hd,-1^.5c1shced\ sm*]<k2s>k2tced\ dcR\,cxxx\_   xxx -> decompressed dictionary
                                              cxxx\_   Split the string on underscores
                                          cR\,         Split each part on commas
 m                                                     Map each element (particle), d, using:
  ?tld                                   d               Is the element length >1? If not, no change, otherwise...
      ,hd                                                  Create a pair consisting of the particle's name and...
                   ced\                                      Split the decay data on spaces
                 sh                                          Parse 1st element (half life) as int
          -1^.5c1                                            Calculate per-tick decay probability
         ,                                                   Pair the above with...
                         m         tced\                       Map the rest of the decay data, k, using:
                           ]<k2                                  Take the 1st two characters
                               s>k2                              Parse the rest of the characters as a string
                          *                                      Repeat the characters that many times
                        s                                      Flatten the list
J                                                      Store the processed dictionary in J

ফলাফলটি হ'ল Jকণার নামের একটি আদেশযুক্ত তালিকা রয়েছে। যদি তারা ক্ষয় হয়, নামটি তার ক্ষয় সম্ভাবনার সাথে যুক্ত হয় এবং এটি যে ক্ষুদ্র কণাগুলিতে ক্ষয় হতে পারে তার একটি সেট দিয়ে তাদের আপেক্ষিক সম্ভাবনার দ্বারা ভারিত হয়।

আউটপুট ফাংশন সংজ্ঞা

L%"The universe contains %s.":j", "fT.e?bs[b\ h@Jk?tb\s"")0b",(?!.*,)"" and"

এটি একটি ফাংশন সংজ্ঞায়িত করে y(b), যা মহাবিশ্বের বর্তমান অবস্থাটিকে তার ইনপুট হিসাবে গ্রহণ করে। এটি কেবল কণার সংখ্যাগুলির একটি তালিকা যা পূর্ববর্তী বিভাগে বর্ণিত অভিধান স্ট্রিংয়ে সংজ্ঞায়িত হিসাবে তাদের ধরণের অনুসারে ক্রমযুক্ত।

L%"x":j", "fT.e?bs[b\ h@Jk?tb\s"")0b",(?!.*,)"" and"   "x" -> format string, omitted for brevity
L                                                      Define a function, y(b)
             .e                     b                  Map each element of b with its index, k, using:
               ?b                 0                     Is b non zero? If not, 0, otherwise...
                   b                                      Particle count
                    \                                     Space
                      h@Jk                                Particle name (lookup in dictionary, then take 1st element)
                          ?tb\s""                        Trailing s if more than 1
                 s[              )                       Concatenate the above 4
           fT                                          Filter out the 0s
      j", "                                            Join on comma + space
     :                                                 Replace in the above...
                                    ",(?!.*,)"         ... the last comma...
                                              " and"   ... with "and"
 %"x"                                                  Insert the above into the format string

সিমুলেশন কার্যকর

K+Q*]Z24Ws<K4yK=+Z1Vs.em?>O1.0he@JkY,kOee@Jkb<K4IN XhNK_1 XRK1xLGeN;yK%"Simulation ended after %s yoctoseconds."cZT

প্রস্তুতি সম্পন্ন হওয়ার সাথে সাথে সিমুলেশনটি এখন কার্যকর করা যেতে পারে। এটি কয়েকটি পদক্ষেপের মিশ্রণ:

মহাবিশ্বের সূচনা

মহাবিশ্বের রাজ্যের সূচক 0-এর কণা হিগস বোসন হওয়ায় মহাবিশ্বের প্রাথমিক অবস্থা হ'ল ইনপুট সংখ্যার একটি অ্যারে এবং তারপরে 24 জিরো থাকে।

K+Q*]Z24   implicit: Q=eval(input())
  Q        Input number
   *]Z24   0 repeated 24 times
 +         Concatenate
K          Assign to K

সিমুলেশন লুপ

সিমুলেশনটির প্রতিটি টিকের সময়, মহাবিশ্বের বর্তমান অবস্থা প্রদর্শিত হওয়া দরকার, একটি পাল্টা বৃদ্ধি করা হয় এবং প্রতিটি অস্থির কণার ক্ষয় হওয়া উচিত কিনা তা খতিয়ে দেখা উচিত, প্রতিটি কণা মূল্যায়ন হয়ে গেলে ফলাফলগুলি মহাবিশ্বের রাজ্যে প্রয়োগ করা উচিত।

Ws<H4yK=+Z1Vs.em?>O1.0he@JkY,kOee@Jkb<K4IN XhNK_1 XRK1xLGeN;   
 s<K4                                                          Take the sum of the first 4 particle counts
W                                                          ;   Loop until the above is 0
     yK                                                        Output the current universe state
       =+Z1                                                    Increment variable Z (initially 0)
             .e                      <K4                       Map each particle count, b, with its index, k, using:
               m                    b                            Map over the particle count using:
                        @JK                                        Look up the particle data
                      he                                           Get the decay probability
                  O1.0                                             Generate random float between 0 and 1
                ?>         Y                                       Has particle failed to decay? Empty array if so, otherwise...
                               ee@Jk                                 Get the particle decay choices
                              O                                      Choose one of them at random
                            ,k                                       Create a pair with the current particle index and the above
            s                                                  Combine into single nested list
           V                                                   For N in the above:
                                        IN                       If N is not empty:
                                           X  K                    Add to element in K...
                                            hN                     ... at the correct particle's index...
                                               _1                  ... -1
                                                      xLGeN        Get the index of each particle to be added to the universe
                                                                     (lookup using index in G, lowercase alphabet)
                                                  XRK1             Add 1 to the element in K at each of the indexes

ফাইনাল আউটপুট

কোনও অস্থির কণা বাকি না থাকলে সিমুলেশন শেষ হয়। যা কিছু অবশিষ্ট রয়েছে তা হ'ল মহাবিশ্বের চূড়ান্ত অবস্থা আউটপুট করা, এবং সিমুলেশনটি কতক্ষণ (কত টিক্স) নেয়।

yK%"Simulation ended after %s yoctoseconds."cZT   
yK                                                Output final universe state
                                            cZT   Float divide ticks count by 10
  %"Simulation ended after %s yoctoseconds."      Format string, implicit print

23

সি ++ ( 2420 , 2243 , 2353 , 1860 , 1822 * .9 = 1639.8)

ঠিক আছে, সুতরাং এটি সম্ভবত সবচেয়ে খারাপ কোড গল্ফ জমা, তবে এটি আমার প্রথম এবং আমি মজা করেছি। আমি মনে করি এটি এমনকি কার্যকর। :)

#include <iostream>
#include <list>
#include <string>
#include <time.h>
#define D r=rand();d=((double)r/RAND_MAX)
using namespace std;class P{int n[25];public:int S;P(int N){for(S=0;S<24;S++)n[S]=0;n[24]=N;S=1;}void C(){string s[25]={"down quark","down antiquark","up quark","up antiquark","bottom quark","bottom antiquark","tau lepton","antitau lepton","charm quark","charm antiquark","strange quark","strange antiquark","neutrino","antineutrino","muon","antimuon","gluon","photon","electron","positron","top quark","top antiquark","Z boson","W boson","Higgs boson"};int r,i,j,w,f,F,x,y;double d;S=0;F=0;for(i=0;i<25;i++){w=0;for(j=0;j<n[i];j++){D;x=-1;y=-1;if(i==24){if(d<.000433){D;if(d<.648){x=4;y=5;}else if(d<.789){x=23;y=23;}else if(d<.8772){x=16;y=16;}else if(d<.9476){x=6;y=7;}else if(d<.9803){x=8;y=9;}else if(d<.9962){x=22;y=22;}else if(d<.99843){x=17;y=17;}else if(d<.99954){x=22;y=17;}else if(d<.999784){x=14;y=16;}else{x=21;y=20;}}}else if(i==23){if(d<.5){D;if(d<.33){x=19;y=12;}else if(d<.67){x=16;y=12;}else{x=17;y=12;}}}else if(i==22){if(d<.5){D;if(d<.206){x=12;y=13;}else if(d<.24){x=18;y=19;}else if(d<.274){x=14;y=16;}else if(d<.308){x=16;y=17;}else if(d<.46){x=0;y=1;}else if(d<.612){x=10;y=11;}else if(d<.764){x=4;y=5;}else if(d<.882){x=2;y=3;}else{x=8;y=9;}}}else if(i==21||i==20){if(d<.1295){D;x=23;if(d<.33){y=0;}else if(d<.67){y=10;}else{y=4;}if(i==21)y-=32;}}if(x>=0){++n[x];++n[y];w++;}if(x>19||y>19)S=1;}n[i]-=w;if(n[i]>0){F=i;if(i>19)S=1;}}cout<<"The universe contains";f=0;for(i=0;i<25;i++){if(n[i]>0){cout<<(f>0?(i<F?", ":" and "):" ")<<n[i]<<' '<<s[i]<<(n[i]>1?"s":"");f=1;}}cout<<'.'<<endl;}};int main(int c,char* v[]){int w=1,y=0;if(c>1){w=atoi(v[1]);}srand(time(0));rand();P p=P(w);int Time=time(0);while(p.S){p.C();y++;}cout<<"Simulation ended after "<<(double)y/10<<" yoctoseconds.";}

দ্রুত সংস্করণ

এই এক ছোট (9 অতিরিক্ত বাইটস) নয়, কিন্তু এটা রান পথ বিশাল সংখ্যার পরীক্ষার জন্য দ্রুত। যেহেতু এটি প্রতিযোগিতা করার পক্ষে যথেষ্ট ছোট নয়, তাই আমি রিয়েল-ওয়ার্ল্ড এক্সিকিউশন সময়কে ঘড়ির জন্য একটি ছোট কোডও যুক্ত করেছি এবং সিমুলেটেড সময়ের পরে ঠিক এটি মুদ্রণ করি। আমার আসল সংস্করণটি প্রায় 8 মিনিটের মধ্যে n = 100k করেছে। উপরের সংস্করণটি প্রায় 2 মিনিটের মধ্যে এটি করে। এই দ্রুত সংস্করণটি এটি 9 সেকেন্ডের মধ্যে করতে পারে। n = 1 মিলিয়ন লেগেছিল 53 সেকেন্ড।

#include <iostream>
#include <list>
#include <string>
#include <time.h>
#define D r=rand();d=((double)r/RAND_MAX)
using namespace std;class P{int n[25];public:int S;P(int N){for(S=0;S<24;S++)n[S]=0;n[24]=N;S=1;}void C(){string s[25]={"down quark","down antiquark","up quark","up antiquark","bottom quark","bottom antiquark","tau lepton","antitau lepton","charm quark","charm antiquark","strange quark","strange antiquark","neutrino","antineutrino","muon","antimuon","gluon","photon","electron","positron","top quark","top antiquark","Z boson","W boson","Higgs boson"};int r,i,j,w,f,F,x,y;double d;S=0;F=0;for(i=20;i<25;i++){w=0;for(j=0;j<n[i];j++){D;x=-1;y=-1;if(i==24){if(d<.000433){D;if(d<.648){x=4;y=5;}else if(d<.789){x=23;y=23;}else if(d<.8772){x=16;y=16;}else if(d<.9476){x=6;y=7;}else if(d<.9803){x=8;y=9;}else if(d<.9962){x=22;y=22;}else if(d<.99843){x=17;y=17;}else if(d<.99954){x=22;y=17;}else if(d<.999784){x=14;y=16;}else{x=21;y=20;}}}else if(i==23){if(d<.5){D;if(d<.33){x=19;y=12;}else if(d<.67){x=16;y=12;}else{x=17;y=12;}}}else if(i==22){if(d<.5){D;if(d<.206){x=12;y=13;}else if(d<.24){x=18;y=19;}else if(d<.274){x=14;y=16;}else if(d<.308){x=16;y=17;}else if(d<.46){x=0;y=1;}else if(d<.612){x=10;y=11;}else if(d<.764){x=4;y=5;}else if(d<.882){x=2;y=3;}else{x=8;y=9;}}}else if(i==21||i==20){if(d<.1295){D;x=23;if(d<.33){y=0;}else if(d<.67){y=10;}else{y=4;}if(i==21)y-=32;}}if(x>=0){++n[x];++n[y];w++;}if(x>19||y>19)S=1;}n[i]-=w;if(n[i]>0&&i>19)S=1;}for(i=0;i<25;i++){if(n[i]>0)F=i;}cout<<"The universe contains";f=0;for(i=0;i<25;i++){if(n[i]>0){cout<<(f>0?(i<F?", ":" and "):" ")<<n[i]<<' '<<s[i]<<(n[i]>1?"s":"");f=1;}}cout<<'.'<<endl;}};int main(int c,char* v[]){int w=1,y=0;if(c>1){w=atoi(v[1]);}srand(time(0));rand();P p=P(w);int Time=time(0);while(p.S){p.C();y++;}cout<<"Simulation ended after "<<(double)y/10<<" yoctoseconds.";cout<<endl<<"Time Taken: "<<(time(0)-Time)<<" seconds."<<endl;}

নমুনা আউটপুট (কোনও আরগ নেই)

The universe contains 1 Higgs boson.
... (many lines later)
The universe contains 1 Higgs boson.
The universe contains 1 bottom quark and 1 bottom antiquark.
Simulation ended after 339.4 yoctoseconds.

নমুনা আউটপুট (মহাবিশ্ব.সেক্স 10):

The universe contains 10 Higgs bosons.
The universe contains 1 bottom quark, 1 bottom antiquark and 9 Higgs bosons.
The universe contains 2 bottom quarks, 2 bottom antiquarks and 8 Higgs bosons.
The universe contains 3 bottom quarks, 3 bottom antiquarks and 7 Higgs bosons.
The universe contains 4 bottom quarks, 4 bottom antiquarks and 6 Higgs bosons.
The universe contains 4 bottom quarks, 4 bottom antiquarks, 1 charm quark, 1 charm antiquark and 5 Higgs bosons.
The universe contains 5 bottom quarks, 5 bottom antiquarks, 1 charm quark, 1 charm antiquark and 4 Higgs bosons.
The universe contains 5 bottom quarks, 5 bottom antiquarks, 1 charm quark, 1 charm antiquark, 2 Z bosons and 3 Higgs bosons.
The universe contains 5 bottom quarks, 5 bottom antiquarks, 1 charm quark, 1 charm antiquark, 1 neutrino, 1 antineutrino, 1 Z boson and 3 Higgs bosons.
The universe contains 5 bottom quarks, 5 bottom antiquarks, 1 charm quark, 1 charm antiquark, 2 neutrinos, 2 antineutrinos and 3 Higgs bosons.
The universe contains 6 bottom quarks, 6 bottom antiquarks, 1 charm quark, 1 charm antiquark, 2 neutrinos, 2 antineutrinos and 2 Higgs bosons.
The universe contains 7 bottom quarks, 7 bottom antiquarks, 1 charm quark, 1 charm antiquark, 2 neutrinos, 2 antineutrinos and 1 Higgs boson.
The universe contains 7 bottom quarks, 7 bottom antiquarks, 1 charm quark, 1 charm antiquark, 2 neutrinos, 2 antineutrinos and 2 W bosons.
The universe contains 7 bottom quarks, 7 bottom antiquarks, 1 charm quark, 1 charm antiquark, 2 neutrinos, 2 antineutrinos and 2 W bosons.
The universe contains 7 bottom quarks, 7 bottom antiquarks, 1 charm quark, 1 charm antiquark, 3 neutrinos, 2 antineutrinos, 1 photon and 1 W boson.
The universe contains 7 bottom quarks, 7 bottom antiquarks, 1 charm quark, 1 charm antiquark, 4 neutrinos, 2 antineutrinos, 1 gluon and 1 photon.
Simulation ended after 1160.5 yoctoseconds.

নমুনা আউটপুট (মহাবিশ্ব.সেক্স 1000000)

(বেশিরভাগ 10 ^ 90 নয়, তবে আমরা সেখানে পাচ্ছি)

(about a minute, 14 MB and 33000 lines of output later)
The universe contains 5006 down quarks, 4945 down antiquarks, 3858 up quarks, 3858 up antiquarks, 653289 bottom quarks, 653190 bottom antiquarks, 70388 tau leptons, 70388 antitau leptons, 36449 charm quarks, 36449 charm antiquarks, 4956 strange quarks, 4873 strange antiquarks, 289364 neutrinos, 6764 antineutrinos, 1401 muons, 275514 gluons, 99433 photons, 1065 electrons and 94219 positrons.
Simulation ended after 3299.9 yoctoseconds.

বড় আউটপুট

আপনি যদি কোনও কমান্ড লাইন থেকে কনসোল আউটপুট ব্যবহার করেন তবে আমি এমন কিছু প্রস্তাব দেব universe.exe 100 > temp.txtযাতে এটি আরও দ্রুত যায়। নোটপ্যাড দিয়ে ++ তারপর আপনি খোলা temp.txt, মারতে পারেন ctrl+H, লিখুন ^(.*?)$\s+?^(?=.*^\1$)মধ্যে খুঁজুন কি ক্ষেত্র, কিছুই প্রবেশ দিয়ে প্রতিস্থাপন ক্ষেত্র, ঘুরিয়ে অনুসন্ধান মোড থেকে Regular Expression, চালু নির্বাচন ইন এবং । নতুন লাইনের সাথে মেলে OFF , তারপরে হিট করুন Replace All। এখন আপনি কেবল দেখতে পাচ্ছেন 8000 আউটপুটের লাইনগুলির পরিবর্তে পরিবর্তনগুলি কোথায় ঘটেছে (আমি মনে করি যে একবারে বাগগুলি 2000-3000 লাইনের চেয়ে বেশি কাজ করছে))

সংশোধন / বদলান

v4 - complete overhaul, removed list, one character array, moved almost everything into the class functions. Fixed output error, was using "," instead of "and" for last item. Sped up execution a *lot* as an added bonus. :)
v3 - more fixes
v2 - more shorter
v1 - fixed numerous little issues, bug fixes
v0 - baseline

1
এটি আপনার প্রথম উদাহরণে মনে হয় আপনি তাউ লেপটনকে আপ কোয়ার্কের সাথে বিভ্রান্ত করেছেন। তাউ লেপটনের 10 ^ -133 সেকেন্ডের অর্ডারে অর্ধেক জীবন রয়েছে, সুতরাং এটি এই সিমুলেশনে স্থিতিশীল হিসাবে বিবেচিত হয়, অন্যথায় এটি ক্ষয় না হওয়া পর্যন্ত আমাদের অনেক বিলিয়ন লাইন থাকবে। আমাদের সিমুলেশনে ক্ষয়প্রাপ্ত একমাত্র জিনিসগুলি হ'ল বোসন এবং শীর্ষ কোয়ার্ক / এন্টিকোয়ার্ক।
vsz

2
আপনি কি সংক্ষিপ্ত char t[N]={'d','D','u','U','b','B','l','L','c','C','s','S','n','N','m','M','g','G','p','e','E','T','t','Z','W','H'করতে পারেন char t[]="dDuUbBlLcCsSnNmMgGpeETtZWH"? কাজ করা উচিত , সম্পর্কে নিশ্চিত না C ++
ডিজিটাল ট্রমা

12

পাইথন 3, 1,247 * 0.9 = 1,122.3

ভাল, এটি আমার দীর্ঘতম শট দ্বারা দীর্ঘ প্রবেশ, তবে কমপক্ষে আমি সি ++ এর চেয়ে কম sh

এখন যোগ বোনাস সঙ্গে! এটি প্রথম যুক্তি হিসাবে একটি সংখ্যা সঙ্গে কল করতে হবে।

আমার মহাবিশ্ব হিগস বোসন ব্যতীত ক্ষয়িষ্ণু কণা নিয়ে কাজ করে নি, তবে এখন তা করে। এছাড়াও, আমার বহুবচন বা বিরামচিহ্নগুলি সঠিক ছিল না, তবে আমি আসলে এখন তা করি ।

আমি সাব 1 কে খুব কাছে চলেছি!

import random,sys,numpy as h
H,M,G,N,P,K,L,n,s='photon,muon,gluon,neutrino,positron, quark,tau lepton, boson,The universe '.split(',')
c=random.choice
Z=' anti'+K[1:]
B='bottom'+K
A=B[:6]+Z
U='anti '+M
T=U[:4]+L
Q='charm'+K
C=Q[:5]+Z
S='strange'+K
R=S[:7]+Z
D='down'+K
O=D[:4]+Z
def w(c):v,t=zip(*c);t=h.array(t);return v[h.random.choice(len(v),p=t/t.sum())]
y=M,U
f=lambda p:{z:w([(c([('up'+K,'up'+Z),(Q,C)]),11.8),((N,U[:5]+N),20.6),(c([('electron',P),y,(L,T)]),3.4),(c([(S,R),(B,B),(D,O)]),15.2)]),E:(I,c([D,S,B])),F:(I,c([O,R,A])),I:c([(P,N),(U,N),(T,N)]),J:w([((B,A),64.8),((I,I),14.1),((G,G),8.82),((L,T),7.04),((Q,C),3.27),((z,z),1.59),((H,H),0.223),((z,H),0.111),(y,0.0244),((E,F),0.0246)])}[p]
z='Z'+n,50
E='top'+K,12.95
F='top'+Z,E[1]
I='W'+n,50
J='Higgs'+n,.0433
u=[J]*int(sys.argv[1])
b={z,E,F,I,J}
k=isinstance
d=lambda p:p if k(p,str)else w([(p,100-p[1]),(f(p),p[1])])
a=0
g=lambda x:[x[0],x][k(x,str)]
while b&set(u):
 n=[]
 for p in u:q=d(p);n+=([q],(q,[q])[q in b])[p in b]
 e=list(map(g,n));e=[(x,x+'s')[e.count(x)>1]for x in e];print(s+'contains %s'%', '.join(('%s %s'%(e.count(x),g(x))for x in set(e[:-1])))+('.',' and %s %s.'%(e.count(e[-1]),e[-1]))[len(set(e))>1]);a+=.1;u=n
print(s+'ended after %s yoctoseconds.'%round(a,1))

11
আমার মনে হয় এটা যে একটি প্রোগ্রাম যা মহাবিশ্ব simulates দিয়ে শুরু হয় মজার import random। নির্ণয়ের জন্য এত কিছু।
21

এটি অজগর 3 ঠিক আছে? আমি অনুমান করি আপনি চূড়ান্ত মুদ্রণ এফ স্ট্রিং ব্যবহার করতে পারেন , এটি আপনাকে 1 বা 2 বাইট সংরক্ষণ করতে পারে :-)।
ক্রোমিয়াম

1
@ ক্রোমিয়াম হ্যাঁ, আমি সম্ভবত পারতাম। আমি যখন এই উত্তরটি লিখেছিলাম তখন তাদের অস্তিত্ব ছিল না, তবে আমি অবশ্যই ফিরে যেতে এবং তাদের যুক্ত করতে পারলাম।
মরগান থ্রাপ

11

পার্ল 6 , (707 বাইট -10%) স্কোর 636.3

কিছুটা পাঠযোগ্যতার জন্য কিছু অপ্রয়োজনীয় লাইন ব্রেক সহ:

{
 my%p;
 %p=<H H2309.469bB64.8WW14.1gg8.82lL7.04cC3.27ZZ1.59pp0.223Zp0.111mM0.0244tT0.0216 W W3pn1Mn1Ln1 Z Z100nN20.6ep3.4mM3.4lL3.4dD15.2sS15.2bB15.2uU11.8cC11.8 t t7.722Wd1Ws1Wb1 T T7.722WD1WS1WB1>;
 my&f=*.comb[0];

 my%h;
 %h{.&f}="$_ boson" for <Higgs W Z>;
 {
  %h{.&f}="$_ quark";
  %h{.&f.uc}="$_ antiquark"
 } for <bottom top charm up down strange>;
 %h{.&f}=$_~"on" for <glu phot electr positr>;
 %h{.&f.uc}="anti"~(%h{.&f}=$_) for <muon neutrino>;
 %h<L>="anti"~(%h<l>="tau lepton");

 my$t;
 ("H"x$^a),{
   $t+=.1;
   S:g/./{%((%p{$/}||$/~1).comb(/(\D+|<:!L>+)/)).Mix.roll}/
 }...{
   say "The universe contains {
      .comb.Bag.map({
         "{.value,%h{.key}~'s'x(.value>1)}"
      }).join(', ')
   }.";
   !/<[HWZtT]>/
 };
 say "Simulation ended after $t yoctoseconds."
}

এটি অনলাইন চেষ্টা করুন!

The universe contains 4 Higgs bosons.
The universe contains 4 Higgs bosons.
The universe contains 4 Higgs bosons.
The universe contains 4 Higgs bosons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 3 Higgs bosons, 2 gluons.
The universe contains 1 tau lepton, 2 Higgs bosons, 2 gluons, 1 antitau lepton.
The universe contains 1 tau lepton, 2 Higgs bosons, 2 gluons, 1 antitau lepton.
The universe contains 1 tau lepton, 2 Higgs bosons, 2 gluons, 1 antitau lepton.
The universe contains 1 tau lepton, 2 Higgs bosons, 2 gluons, 1 antitau lepton.
The universe contains 1 tau lepton, 1 Higgs boson, 4 gluons, 1 antitau lepton.
The universe contains 1 tau lepton, 6 gluons, 1 antitau lepton.
Simulation ended after 1.7 yoctoseconds.

কিছু ব্যাখ্যা: Godশ্বর এবং মানুষ

পদার্থবিজ্ঞান %pএবং নামকরণকে ধারণ করে এমন 2 টি ডাটা স্ট্রাকচার রয়েছে %h; andশ্বর এবং মানুষ যেমন ছিল। পদার্থবিদ্যার হ্যাশ মূল অস্থির কণা অক্ষর দ্বারা সূচিযুক্ত স্ট্রিংয়ের একটি সেট দেয় যা বিভক্ত, হ্যাশ এবং মিশ্রণে রূপান্তরিত হতে পারে:

say %((%p<H>).comb(/(\D+|<:!L>+)/)).Mix;
> Mix(H(2309.469), WW(14.1), ZZ(1.59), Zp(0.111), bB(64.8), cC(3.27), gg(8.82), lL(7.04), mM(0.0244), pp(0.223), tT(0.0216))

প্রতিটি কণা একটি চিঠি পায়, এবং এইভাবে এই মিশ্রণগুলির প্রতিটি কণা ক্ষয়ের সংগ্রহ নির্দিষ্ট করে। এইচটি ডাব্লুডাব্লু এর সাথে সংশোধন করেছে, সম্ভাব্যতার ওজন 14.1। কণা-অ্যান্টিপার্টিকেল জোড়া কম এবং বড় হাতের অক্ষরের সাথে কোডড হয়, যেমন cএবং Cকবজ কোয়ার্ক এবং কবজ অ্যান্টিকোয়ার্কের জন্য।

এবং মানুষ কিছুক্ষণ ভেবেছিল এবং এর নাম দিয়েছে অ্যান্টিটা লেপটন

নামকরণটি সমস্ত সেট আপ করা আছে %h, যা প্রতিটি অক্ষরকে কেবল একটি কণার নামের সাথে মানচিত্র করে। এটি একটি ডিগ্রীতে গল্ফড, তবে আমার সন্দেহ আছে যে পুনরাবৃত্তির পরিমাণের দিক দিয়ে উন্নতির কোনও জায়গা আছে।

p => positron
g => gluon
Z => Z boson
B => bottom antiquark
e => electron
s => strange quark
d => down quark
W => W boson
m => muon
U => up antiquark
c => charm quark
H => Higgs boson
L => antitau lepton
N => antineutrino
n => neutrino
S => strange antiquark
D => down antiquark
T => top antiquark
u => up quark
t => top quark
b => bottom quark
M => antimuon
C => charm antiquark
l => tau lepton

আসল স্ট্রিং

এই দুটি কাঠামো স্থানে থাকাতে, মহাবিশ্ব অবশ্যই স্ট্রিং ম্যানিপুলেশন দ্বারা অনুকরণ করা হয়। একইভাবে "H"একটি মহাবিশ্বও এতে একক হিগস বোসন রয়েছে। জেনারেটর কাঠামোটি _,_..._একটি লুপ তৈরি করতে ব্যবহৃত হয় এবং মহাবিশ্বের স্ট্রিংয়ের অবস্থার (এটি ধারণ করে $_) মুদ্রণ করা থেকে পৃথক করে। মুদ্রণটি মহাবিশ্বের অক্ষরগুলি ব্যাগ করে এবং ফলাফলগুলি গণনা করে (বহুবচন সহ!) করা হয়।

হাঁচি কণা অস্তিত্ব মধ্যে

বিবর্তিত কণাগুলি সেই কণার জন্য মিক্স থেকে নেওয়া কোনও মানকে ম্যাপিংয়ের সাথে জড়িত; সুতরাং t, শীর্ষ কোয়ার্ক, হিসাবে বিকশিত

t=>7.722
Wd=>1
Ws=>1
Wb=>1

পার্ল 6 আমাদের এলোমেলোভাবে ফ্লোরিং সহজ মাধ্যমে ওজনযুক্ত ভারগুলির সাথে সেই কীগুলির মধ্যে একটি বেছে নেওয়ার অনুমতি দেয় .roll। সুতরাং আমরা আমাদের মহাবিশ্ব "এইচটিটি" -> "এইচডাব্লুবিটি" এর জন্য রোল করব tএবং পেয়েছি , বলছি Wbএবং এর বিকল্প করব। প্রতিটি অস্থির কণা নিজেই একটি সম্ভাব্য রোল হিসাবে থাকে, যা আমাদের কাঠামোটি ক্ষয় হয়েছে কিনা তা পরীক্ষা করে তুলনামূলক সহজ করার অনুমতি দেয়; বেশিরভাগ সময় আপনি "এইচ" এর জন্য রোল করেন, আপনি কেবল আবার "এইচ" পান।

পরীক্ষামূলক স্ট্রিং তত্ত্ব

আপনি এই পরিবর্তিত সংস্করণটির মাধ্যমে মহাবিশ্বের স্ট্রিংটি বিকশিত দেখতে পাচ্ছেন ।

 HHH
 HHH
 HHbB
 HHbB
 HHbB
 HHbB
 HHbB
 HHbB
 lLHbB
 lLHbB
 lLHbB
 lLHbB
 lLHbB
 lLbBbB

কর্মক্ষমতা

আমি এটি টিআইওতে 100 H পর্যন্ত পৌঁছেছি, অবশ্যম্ভাবীভাবে যদি আপনি আরও কিছুটা যেতে চান তবে কিছু পরিবর্তন করা ভাল be এটি সর্বোপরি গ্র্যান্ড ইউনিফাইড স্ট্রিং থিওরি।


লোকটি এই নামটি কী দিয়েছিল, ফিল?
মনোজ কুমার

1
@ মনোজকুমার: উইকিপিডিয়া অনুসারে: "প্রতীক the গ্রীক থেকে উদ্ভূত হয়েছিল τρίτον (ট্রাইটন, যার অর্থ ইংরেজীতে" তৃতীয় "), এটি তৃতীয় চার্জযুক্ত লেপটোন আবিষ্কারের পরে।" ( en.wikedia.org/wiki/Tau_ ( অংশ ) )
ফিল এইচ

7

গ্রোভি, 1506 1454 - 10% = 1309 বাইট

কমান্ড লাইনে প্রথম যুক্তি হিসাবে হিগস বোসন কণাগুলি শুরু করার সংখ্যাটি ধরে নেওয়া হয়েছে:

A='anti'
B='bottom '
C='charmed '
D='downward'
E='tau '
F='top '
L='lepton'
M='muon'
N='nutrino'
O=' boson'
P='upward '
Q='quark'
T='strange '
a=[n:'gluon']
b=[n:B+Q]
c=[n:B+A+Q]
d=[n:D+Q]
e=[n:D+A+Q]
f=[n:P+Q]
g=[n:P+A+Q]
h=[n:T+Q]
i=[n:T+A+Q]
j=[n:C+Q]
k=[n:C+A+Q]
l=[n:'positron']
m=[n:'electron']
n=[n:N]
o=[n:A+N]
p=[n:'photon']
q=[n:M]
r=[n:A+M]
s=[n:E+L]
t=[n:A+E+L]
u=[n:'W'+O,c:50,s:[[c:33,p:[l,n]],[c:33,p:[l,n]],[c:33,p:[l,n]]]]
v=[n:F+Q,c:12.95,s:[[c:33,p:[u,d]],[c:33,p:[u,h]],[c:33,p:[u,b]]]]
w=[n:F+A+Q]
x=[n:'Z'+O,c:50,s:[[c:20.6,p:[n,o]],[c:3.4,p:[m,l]],[c:3.4,p:[q,r]],[c:3.4,p:[s,t]],[c:15.2,p:[d,e]],[c:15.2,p:[h,i]],[c:15.2,p:[b,c]],[c:11.8,p:[f,g]],[c:11.8,p:[j,k]]]]
y=[n:'Higgs'+O,c:0.0433,s:[[c:64.8,p:[b,c]],[c:14.1,p:[u,u]],[c:8.82,p:[a,a]],[c:7.04,p:[s,t]],[c:3.27,p:[j,k]],[c:1.59,p:[x,x]],[c:0.223,p:[p,p]],[c:0.111,p:[x,l]],[c:0.0244,p:[q,r]],[c:0.0216,p:[v,w]]]]
O={new Random().nextInt(1000001)/10000}
S={s,c->for(Map p:s){c-=p.c;if(c<=0){return p.p}};S(s,O())}
P={r=[];it.collect{it.n}.groupBy{it}.each{k,v->c=v.count{it};r<<"${c} ${c>1?k+'s':k}"};r.join(', ').reverse().replaceFirst(',', 'dna ').reverse()}
U=[]
args[0].times{U<=O()){I.remove();S(J.s,O()).each{I.add(it)}}}
if(!Z){println "Simulation ended after $Y yoctoseconds.";break}}


1454 এর 10% হল 145.4
জিওকাভেল

এইরকম গণিতের সাথে এটি একটি আশ্চর্যজনক যে সিমুলেশনটি একেবারেই কাজ করে :-) এটি নির্দেশ করার জন্য ধন্যবাদ!
কে ক্লাসেন

7

পিএইচপি, 989 - 10% = 890.1 বাইট

সাব 1 কে বাচ্চা! ধন্যবাদ ভার্জ, এটি একটি মজাদার চ্যালেঞ্জ ছিল। এটি নিয়ে যাওয়ার অনেকগুলি উপায় এবং আপনার আউটপুট যাচাই করা খুব কঠিন।

প্রোগ্রামটি হিগস বোসনের প্রারম্ভিক সংখ্যা উল্লেখ করার জন্য একটি কমান্ড লাইন যুক্তি নিতে পারে, যেমন eg php universe_simulator.php 5

<?eval(gzinflate(base64_decode('bVNdb9Q6EH3nV4TVSEm0ozRpt/uBcRGlQLlw4QIFWqxQuYm7mza1s4mzdEH73+84WUqFyINzjn1mfMaaAcmltgWDC35hrDU3DDKeLWRN4JC2GqMZLPmylfU1g4Y3tpZ6rhhY7lvZeqWqrNE+A821am1daMMuTa1ktgjUbVWaXAU++jiAn3Jz0xqNIKFbLMKFR/9l96c127LMsdx81z3v0RJVqTJbU4J56dIcF/N548Eh9kk1VgtDTrAyTdHJoNnma7rsFq2p+p0OLLHd0rZjX1yur7QMQtnAKoRKZIs6GA6hGI5HYcphxSDn4g0/EFEcx6O9PRQiGo+mKI7weZqiiCbTGYpTPO3IdDLZRfEaX3dsNpqMUTzDjz2bxhT9Al/2bDYm5Rmebdl0RIfv8N2WzvZHjv46nU2mxJ/iv44nKE7wU0ofnjpj++Qp2aHwt/ifO991+Cm+3WqfOUT47Jc22o3J1mEviPb2qZhjfNWRfdK/xw8dHjuDv6tE8Rm/9EXOpvfq2CPVP/3F0Ww8vu+yq5zwJ3dzsju7M/qqf67O6Icek/y5Q4RP/pQf35O/v5Mf9fKUQctlXcv1+WVRlkFMfVbPVyJJnzxK8E3IYM1j9n1RlCp4CLfhT7jlCYMrLtK7pu3DM9Nqe76SZauaAFrXEtf8wLXFlUj5AFYe9Qdcp4MogNVB8sRv/Ee+HzKVLYxX1Wp+XquqlBk1/w4G4humwxB2aBA8qXNIaB5OFsprdbFSdaO8zGgrC914g+jKFJomxvMRrsJoED0YhHfeoPXISEFGbFhcBpALsGlXRcyI02TmQbgzV25G8xt5G4SPeS8SsdP94H+R/M7eK5OU7si6/D8oPOtC+1ep2saZwCiKaD9JQ3ZBodds0+pGWToRUNDmZgPrIY8StnHPMfhY3LSltIXRntK5yj15aVXtwdpbm8yaRlH1eUOFsv8B')));

লাইন ব্রেকগুলির সাথে এখানে একই জিনিস রয়েছে, উহ ... "পঠনযোগ্যতা" ...

<?eval(gzinflate(base64_decode('bVNdb9Q6EH3nV4TVSEm0ozRpt/uBcRGlQLlw4QIFWqxQuYm7
mza1s4mzdEH73+84WUqFyINzjn1mfMaaAcmltgWDC35hrDU3DDKeLWRN4JC2GqMZLPmylfU1g4Y3tpZ6
rhhY7lvZeqWqrNE+A821am1daMMuTa1ktgjUbVWaXAU++jiAn3Jz0xqNIKFbLMKFR/9l96c127LMsdx8
1z3v0RJVqTJbU4J56dIcF/N548Eh9kk1VgtDTrAyTdHJoNnma7rsFq2p+p0OLLHd0rZjX1yur7QMQtnA
KoRKZIs6GA6hGI5HYcphxSDn4g0/EFEcx6O9PRQiGo+mKI7weZqiiCbTGYpTPO3IdDLZRfEaX3dsNpqM
UTzDjz2bxhT9Al/2bDYm5Rmebdl0RIfv8N2WzvZHjv46nU2mxJ/iv44nKE7wU0ofnjpj++Qp2aHwt/if
O991+Cm+3WqfOUT47Jc22o3J1mEviPb2qZhjfNWRfdK/xw8dHjuDv6tE8Rm/9EXOpvfq2CPVP/3F0Ww8
vu+yq5zwJ3dzsju7M/qqf67O6Icek/y5Q4RP/pQf35O/v5Mf9fKUQctlXcv1+WVRlkFMfVbPVyJJnzxK
8E3IYM1j9n1RlCp4CLfhT7jlCYMrLtK7pu3DM9Nqe76SZauaAFrXEtf8wLXFlUj5AFYe9Qdcp4MogNVB
8sRv/Ee+HzKVLYxX1Wp+XquqlBk1/w4G4humwxB2aBA8qXNIaB5OFsprdbFSdaO8zGgrC914g+jKFJom
xvMRrsJoED0YhHfeoPXISEFGbFhcBpALsGlXRcyI02TmQbgzV25G8xt5G4SPeS8SsdP94H+R/M7eK5OU
7si6/D8oPOtC+1ep2saZwCiKaD9JQ3ZBodds0+pGWToRUNDmZgPrIY8StnHPMfhY3LSltIXRntK5yj15
aVXtwdpbm8yaRlH1eUOFsv8B')));

কিছু আউটপুট:

The universe contains 2 Higgs bosons.
[...]
The universe contains 1 Higgs boson, 2 neutrinos, 1 positron and 1 antimuon.
The universe contains 1 Higgs boson, 2 neutrinos, 1 positron and 1 antimuon.
The universe contains 1 Higgs boson, 2 neutrinos, 1 positron and 1 antimuon.
The universe contains 1 Higgs boson, 2 neutrinos, 1 positron and 1 antimuon.
The universe contains 1 Higgs boson, 2 neutrinos, 1 positron and 1 antimuon.
The universe contains 2 neutrinos, 1 positron, 1 antimuon, 1 bottom antiquark and 1 bottom quark.
Simulation ended after 153.2 yoctoseconds.

5
আপনিও উত্তরের সাথে সংকোচিত সংস্করণটি যুক্ত করতে পারেন?
রায়

"পাঠযোগ্যতা!" আনজিপড সংস্করণ?
মনোজ কুমার

7

কিউব্যাসিক 2161 * .9 = 1945 2028 * .9 = 1825 1854 * .9 = 1669 বাইট

কিউ বেসিকটি এখন লটম হলাম আমি ভেবেছিলাম পিপিসিজিতে আমার প্রথম উত্তরটি সংশোধন করব। খারাপ না, 140 বাইট ছিটকে পরিচালিত!

@ টেলরস্কট এবং @ ডলোকসের প্রতিক্রিয়ার ভিত্তিতে আমি একটি সম্পূর্ণ পুনরায় নকশা করেছি:

  • সময় পরিবর্তন করা
  • ফর্ম্যাটিং এখন অনুমান অনুসারে
  • ইনডেক্সড স্ট্রিংয়ে অ্যারে তৈরি করে এক টন বাইট সংরক্ষণ করা

কোড

SUB f(p$,c)
DIM e$(25)
q$=" quark
a$=" antiquark
e$(1)="HHiggs boson
e$(2)="bbottom"+q$
e$(3)="1bottom"+a$
e$(4)="WW boson
e$(5)="gGluon
e$(6)="TTau lepton
e$(7)="2Tau antilepton
e$(8)="ccharm"+q$
e$(9)="3charm"+a$
e$(10)="ZZ boson
e$(11)="pphoton
e$(12)="mmuon
e$(13)="4antimuon
e$(14)="0top"+q$
e$(15)="5top"+a$
e$(16)="+positron
e$(17)="nneutrino
e$(18)="6antineutrino
e$(19)="-electron
e$(20)="ddown"+q$
e$(21)="7down"+a$
e$(22)="sstrange"+q$
e$(23)="8strange"+a$
e$(24)="uup"+q$
e$(25)="9up"+a$
FOR i=1TO 25
IF LEFT$(e$(i),1)=p$THEN ?str$(c)" "MID$(e$(i),2);
NEXT
IF c>1THEN?"s";
END SUB
RANDOMIZE TIMER
z=100
INPUT x
p$=string$(x,"H")
1:b=0
REDIM m$(LEN(p$))
FOR i=1TO LEN(p$)
m$(i)=MID$(p$,i,1)
NEXT
p$=s$(m$())
t=t+1
?"The universe contains";
FOR i=1TO LEN(p$)
y$=MID$(p$,i,1)
z$=MID$(p$,i+1,1)
c=c+1
IF(y$=z$ AND i<LEN(p$))=0THEN f y$,c:c=0
NEXT
?
r$="
FOR i=1TO LEN(p$)
d&=(RND*z)*z
e&=(RND*z)*(z^2)
q$=MID$(p$,i,1)
IF INSTR("HWZ02",q$) THEN b=1
r$=r$+g$(d&,e&,q$)
NEXT
p$=r$
IF b GOTO 1
?"Simulation ended after"t/10"yoctoseconds.
FUNCTION g$(d&,p&,q$)
DIM e$(28)
FOR i=1TO 28
x$=Mid$("H00433099979405H004330999550m4H004330998440ZpH004330996210ppH004330980310ZZH004330947610c3H004330877210T2H004330789010ggH004330648010WWH004330000000b12012950666670W12012950333340W82012950000000W70012950666670Wb0012950333340Ws0012950000000WdW0500006666702nW0500003333404nW050000000000+nZ050000882010c3Z050000764010u9Z050000612010b1Z050000460010s8Z050000308010d7Z050000274010T2Z050000240010m4Z050000206010-+Z050000000000n6",15*i+1,15)
a&=VAL(MID$(x$,8,7))
g$=q$
IF LEFT$(x$,1)=q$ THEN
IF d&<VAL(MID$(x$,2,5)) THEN
IF(p&>a& OR a&=0) THEN
g$=RIGHT$(x$,2)
EXIT FUNCTION
ENDIF
ENDIF
ENDIF
NEXT
END FUNCTION
FUNCTION s$(n$())
x=UBOUND(n$)
FOR i=1TO x:FOR J=1TO x
IF n$(i)<n$(J)THEN SWAP n$(i),n$(J)
NEXT j,i
FOR i=1TO UBOUND(n$)
a$=a$+n$(i)
NEXT
s$=a$
END FUNCTION

নমুনা আউটপুট

? 3
The universe contains 3 Higgs bosons
The universe contains 3 Higgs bosons
The universe contains 3 Higgs bosons
The universe contains 3 Higgs bosons
The universe contains 1 bottom antiquark 2 Higgs bosons 1 bottom quark
The universe contains 1 bottom antiquark 2 Higgs bosons 1 bottom quark
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 2 bottom antiquarks 1 Higgs boson 2 bottom quarks
The universe contains 3 bottom antiquarks 3 bottom quarks
Simulation ended after 2.3 yoctoseconds.

হ্যাঁ বছর-পরে গল্ফিংয়ের জন্য ... তবে আউটপুট ফর্ম্যাটটি প্রশ্নের কঠোর প্রয়োজনীয়তার সাথে মেলে না। ??
DLosc

1
জন্য - ~ 200 বাইট, ব্যবহার For i=0To 28 x$=Mid$("H00433099979405H004330999550m4H004330998440ZpH004330996210ppH004330980310ZZH004330947610c3H004330877210T2H004330789010ggH004330648010WWH004330000000b12012950666670W12012950333340W82012950000000W70012950666670Wb0012950333340Ws0012950000000WdW0500006666702nW0500003333404nW050000000000+nZ050000882010c3Z050000764010u9Z050000612010b1Z050000460010s8Z050000308010d7Z050000274010T2Z050000240010m4Z050000206010-+Z050000000000n6",15*i+1,15)... Nextফাংশনে f$()অ্যারের উপরe$()
টেলর স্কট

কার্যক্রমে s$(), Next:Nextহতে পারে Next j,i, এবং আপনার ?বিবৃতিগুলির সমস্তগুলির প্রয়োজন কিনা তা পরীক্ষা করে দেখতে হবে ;। তবে এটিও প্রদর্শিত হচ্ছে যে আপনার আউটপুটটি বর্তমানে অনুমানগুলি পূরণ করে না
টেলর স্কট

@ ডিএলকস এবং টেলর আমি আপনার আগাম সপ্তাহান্তে আপনার উভয় পরামর্শই দেখব; আমি তার আগে কিছুটা ব্যস্ত ... ধন্যবাদ
স্টেইনবার্গ

6

সি # 6, 3619 3617 3611 3586 - 10% = 3227.4 বাইট

প্রোগ্রামটি শুরু করার জন্য হিগস বোসনগুলির সংখ্যা এবং র‌্যান্ডম শ্রেণির জন্য বীজ ব্যবহারের জন্য দুটি alচ্ছিক যুক্তি গ্রহণ করে।

using System;using System.Collections.Generic;class a{List<P>L;List<Q>S;double Y;static void Main(string[]a){a b;b=a.Length<1?new a():a.Length<2?new a(int.Parse(a[0])):new a(int.Parse(a[0]),int.Parse(a[1]));}a(int j=1,int e=1){Random r=new Random(e);L=new List<P>();S=new List<Q>();for(int i=0;i<j;i++)L.Add(new H());while(L.Count>0){List<P>l=new List<P>();foreach(P p in L){List<P>d=p.C(r);if(d!=null)foreach(P y in d){if(y.GetType()==typeof(Q))S.Add((Q)y);else l.Add((P)y);}else l.Add(p);}L=l;Y+=.1;W();}var s=$"Simulation ended after {Y} yoctosecond";if(Y!=1d)s+="s";Console.WriteLine(s+".");}void W(){var t="";Dictionary<string,int>N=new Dictionary<string,int>();int M=0;foreach(P x in L){t=x+"";if(N.ContainsKey(t))N[t]++;else{N.Add(t,1);M++;}}foreach(Q x in S){t=x+"";if(N.ContainsKey(t))N[t]++;else{N.Add(t,1);M++;}}var o="The universe contains ";int i=N.Keys.Count;foreach(var x in N.Keys){i--;if(M==1){o+=$"{N[x]} {x}";if(N[x]!=1)o+="s";}else if(M==2){o+=$"{N[x]} {x}";if(N[x]!=1)o+="s";if(i!=0)o+=" and ";}else{if(i<1){o+=$"and {N[x]} {x}";if(N[x]!=1)o+="s";}else{o+=$"{N[x]} {x}";if(N[x]!=1)o+="s";o+=", ";}}}Console.WriteLine(o+".");}}abstract class P{public static string[]Z=new string[]{"photon","gluon","positron","electron","quark","lepton","muon","neutrino"};public double l;public abstract List<P>D(Random r);public List<P>C(Random r){List<P>d=null;if(r.NextDouble()<l)d=D(r);return d;}}class H:P{public H(){l=.000433;}public override List<P>D(Random r){var d=new List<P>();Action<P>U=d.Add;var n=r.NextDouble();if(n<.648){U(new Q("bottom "+Z[4]));U(new Q("bottom anti"+Z[4]));}else if(n<.789){U(new W());U(new W());}else if(n<.8772){U(new Q(Z[1]));U(new Q(Z[1]));}else if(n<.9476){U(new Q("tau "+Z[5]));U(new Q("antitau "+Z[5]));}else if(n<.9803){U(new Q("charm "+Z[4]));U(new Q("charm anti"+Z[4]));}else if(n<.9962){U(new Z());U(new Z());}else if(n<.99843){U(new Q(Z[0]));U(new Q(Z[0]));}else if(n<.99954){U(new Z());U(new Q(Z[0]));}else if(n<.999784){U(new Q(Z[6]));U(new Q("anti"+Z[6]));}else{U(new T(0>1));U(new T(1>0));}return d;}public override string ToString(){return"Higgs Boson";}}class W:P{public W(){l=.5;}public override List<P> D(Random r){var d=new List<P>();var n=r.NextDouble();d.Add(new Q(Z[7]));if(n<1/3d)d.Add(new Q(Z[2]));else if(n<2/3d)d.Add(new Q("anti"+Z[6]));else d.Add(new Q("antitau "+Z[5]));return d;}public override string ToString(){return"W Boson";}}class Z:P{public Z(){l=.5;}public override List<P>D(Random r){var d=new List<P>();var n=r.NextDouble();Action<P>U=d.Add;var t=Z[4];if(n<.206){U(new Q(Z[7]));U(new Q("anti"+Z[7]));}else if(n<.24){U(new Q(Z[3]));U(new Q(Z[2]));}else if(n<.274){U(new Q(Z[6]));U(new Q("anti"+Z[6]));}else if(n<.308){U(new Q("tau "+Z[5]));U(new Q("antitau "+Z[5]));}else if(n<.46){U(new Q("down "+t));U(new Q("down anti"+t));}else if(n<.612){U(new Q("strange "+t));U(new Q("strange anti"+t));}else if(n<.764){U(new Q("bottom "+t));U(new Q("bottom anti"+t));}else if(n<.882){U(new Q("up "+t));U(new Q("up anti"+t));}else{U(new Q("charm "+t));U(new Q("charm anti"+t));}return d;}public override string ToString(){return"Z Boson";}}class T:P{bool A;public T(bool a){A=a;l=.1295;}public override List<P>D(Random r){var d=new List<P>();var n=r.NextDouble();d.Add(new W());if(n<1/3d)d.Add(new Q("down "+Z[4]));else if(n <2/3.0)d.Add(new Q("strange "+Z[4]));else d.Add(new Q("bottom "+Z[4]));return d;}public override string ToString(){var r=A?"top anti":"top ";return r+Z[4];}}class Q:P{string N;public Q(string n){N=n;}public override List<P>D(Random r){return null;}public override string ToString(){return N;}}

এর জন্য আমার অবজেক্ট ব্যবহার করা উচিত নয়, আমি সম্ভবত এর পরিবর্তে অ্যারে ব্যবহার করে দ্বিতীয় সমাধান করার চেষ্টা করব, তবে এটি ইতিমধ্যে পোস্ট করা সি ++ সমাধানের মতো হতে পারে। আমি যে হিগস বোসনগুলি পরিচালনা করতে পারি তার সংখ্যাও তীব্রভাবে সীমাবদ্ধ, আমি মনে করি এইচ = 1,000,000 এর জন্য কমপক্ষে এক ঘন্টা। ছোট সংখ্যা যদিও যুক্তিসঙ্গতভাবে চলমান।

নমুনা আউটপুট:

$ b
// Default h=1,seed=1
The universe contains 1 Higgs Boson.
...
The universe contains 1 bottom quark and 1 bottom antiquark.
Simulation ended after 65.5000000000006 yoctosecond.

$ b 10 12345
The universe contains 10 Higgs Bosons.
The universe contains 9 Higgs Bosons, 1 bottom quark, and 1 bottom antiquark.
The universe contains 8 Higgs Bosons, 2 W Bosons, 1 bottom quark, and 1 bottom antiquark.
The universe contains 8 Higgs Bosons, 1 bottom quark, 1 bottom antiquark, 2 neutrinos, and 2 antitau leptons.
The universe contains 7 Higgs Bosons, 2 bottom quarks, 2 bottom antiquarks, 2 neutrinos, and 2 antitau leptons.
The universe contains 6 Higgs Bosons, 3 bottom quarks, 3 bottom antiquarks, 2 neutrinos, and 2 antitau leptons.
The universe contains 5 Higgs Bosons, 4 bottom quarks, 4 bottom antiquarks, 2 neutrinos, and 2 antitau leptons.
The universe contains 2 W Bosons, 4 Higgs Bosons, 4 bottom quarks, 4 bottom antiquarks, 2 neutrinos, and 2 antitau leptons.
The universe contains 1 W Boson, 4 Higgs Bosons, 4 bottom quarks, 4 bottom antiquarks, 3 neutrinos, 2 antitau leptons, and 1 antimuon.
The universe contains 4 Higgs Bosons, 4 bottom quarks, 4 bottom antiquarks, 4 neutrinos, 2 antitau leptons, and 2 antimuons.
The universe contains 3 Higgs Bosons, 5 bottom quarks, 5 bottom antiquarks, 4 neutrinos, 2 antitau leptons, and 2 antimuons.
The universe contains 2 Higgs Bosons, 6 bottom quarks, 6 bottom antiquarks, 4 neutrinos, 2 antitau leptons, and 2 antimuons.
The universe contains 1 Higgs Boson, 2 W Bosons, 6 bottom quarks, 6 bottom antiquarks, 4 neutrinos, 2 antitau leptons, and 2 antimuons.
The universe contains 1 Higgs Boson, 1 W Boson, 6 bottom quarks, 6 bottom antiquarks, 5 neutrinos, 2 antitau leptons, and 3 antimuons.
The universe contains 1 Higgs Boson, 6 bottom quarks, 6 bottom antiquarks, 6 neutrinos, 2 antitau leptons, 3 antimuons, and 1 positron.
The universe contains 7 bottom quarks, 7 bottom antiquarks, 6 neutrinos, 2 antitau leptons, 3 antimuons, and 1 positron.
Simulation ended after 540.500000000054 yoctoseconds.

আমি h = 1000000 রান শেষ করতে শেষ দুটি লাইন পোস্ট করব, সম্ভবত আজ পরে। প্রতিশ্রুত:

$ b 1000000
(a few hours, 35K lines, and 15MB later)
The universe contains 653391 bottom quarks, 653271 bottom antiquarks, 36336 charm quarks, 36336 charm antiquarks, 176724 gluons, 71397 tau leptons, 165604 antitau leptons, 5626 photons, 288869 neutrinos, 95047 positrons, 95556 antimuons, 5254 strange quarks, 5130 strange antiquarks, 1389 muons, 1081 electrons, 5240 down quarks, 5104 down antiquarks, 6529 antineutrinos, 3862 up quarks, and 3862 up antiquarks.
Simulation ended after 3599.29999999782 yoctoseconds.

তাত্ক্ষণিক চেহারা থেকে, এখানে একটি অকেজো সাদা স্থান else {U(new T(0>1))এবং একাধিক n < 2 / 3.0এবং একটিতে রয়েছে n <2/3.0
ইয়াতসি

@ টুক্কাএক্স ধন্যবাদ, সেগুলি মিস করেছি। 3 ডি দিয়ে 3.0 প্রতিস্থাপন করে অন্য বাইট সংরক্ষণ করতে হবে, প্রথমটি পরিবর্তন করার পরে অবশ্যই এই লাইনটি যুক্ত করা উচিত।
ইয়োডল

একটি at if (a.Length, এবং অন্য এ if (N[x]!=1, তৃতীয় এক এ o+= $। এছাড়াও, আপনি a[0]কোনও পূর্ণসংখ্যার সাথে দু'বার পার্স করছেন , যখন ফলাফলটি কোনও পূর্ণসংখ্যার কাছে সংরক্ষণ করা যায়। আমি মনে করি এটি Y==1.0হতে পারে Y==1.তবে আমি সে সম্পর্কে নিশ্চিত নই। i!=0হতে পারে i। আপনার ভেরিয়েবলগুলি আসলে প্রত্যাখ্যান করতে পারে কিনা তা আমি জানি না, তবে তা না হলে আপনি ==0এর সাথে প্রতিস্থাপন করতে পারেন <1। শিরোনামটি সি # 6 বলা উচিত, যেহেতু আপনি স্ট্রিং ইন্টারপোলেশন ব্যবহার করছেন।
Yytsi

@ টুকুএক্সএক্স দুর্ভাগ্যক্রমে, সি # যদি (পূর্ণসংখ্যার) অনুমতি দেয় না, যদি না আমি কিছু ভুল করি। এবং আমি আমার মূল পদ্ধতিটি অন্যভাবে সংক্ষিপ্ত করে রেখেছি, তবে আমি মনে করি না যে কোনও যুক্তি না থাকলে আগে থেকেই কোনও পূর্বে একটি [0] নির্ধারণ করা সম্ভব হয় (ডিফল্ট h = 1 এবং বীজ = 1 দিয়ে চালানো হয়) । যদিও সব কিছুর জন্য ধন্যবাদ!
ইয়োডল

5

গণিত, 950 বাইটস -10% = 855 বাইট

সংক্ষেপিত এক্সপ্রেশন ব্যবহার:

ToExpression[Uncompress["1:eJxdVG1v2jAQ7of9kMyVpna9pkkKLV0aROlW2AQVb1MqPGsKYCBaYtPEjFLgf+zn7vKGaD/kse/J+fz4zuePI9nr//twdOQ5ZTt0DHvkDLxRwGkTPGZHTs8TExnez6U/5nYvN3vcC+zAaXExU3P7l2Faz7T7m31xiEZuqwPZV5EvZrRLqcUYu62mdH/lq/E8IU3GoAmk6c9msVaXsRQEXoHUpVIy1LpLL/pDYLgn7oTynzPSBeIWKxpAGsEymQ1aQAbeUmvxhUrs3EzWBTk1BXI/96J99IfCPgiOOw6L4AsgnbnEpTGBNpB2us8aSOIepsYLbiIXRbynzDqI1sEIMvZVlDgLII98mWRFEhhnYcSe4EC+BXycua6AYPo8MePvDl6w+Y6o6qtciUMnmVO5xx2Qn28k1VMi+8uSqrlzTBBt83DEoy4dQXPrbofbl+0Tg/DsDK/CQ+ApxQU9yYt3jHX7PqU9ym4N3YSIbvSrUgV0s2SCXqlYoBvXRgnx0rpGNMs3iIZlXSaDaZrJYFilUjaaV7vz6mbzCsMdbFxwERvQQMSCtnCYwgPiMP29gEU67yC2YY34Ak+7HV4khsnZayonmjYdEOiwTrGFiG4uw/q+dTN0y7gCA8WW3qFZtt6jWckwVSxgjJH5gZhcsYQ24gpWiNmx6nCXnwRFDBmcYHZPD3Jo3WSSXZBpElYpvqI3g99wnJbp9NNFbcTs2Hm+qJ08yij0gtq9XAoV0xG70HvLgJ9XW36sTu0O3ihFyWDOtaXw//Io5tpYCuX5eJOxB9PG/CF9QYvSDvBWxQsZc7rJGh+1BbXYcXwoZiYQAkTD1icsIf2CAoIqNz6YgH54PvzSdtcJs1PluZw+9gxu50uhcTHhE82bKh69eSswFZ/D9KlYy7FCOah6EmOg/5kZdRM="]]

আনপ্রেসড কোড (1168 বাইট -10% = 1051.2 বাইটস):

a=5;m=0;b=Table[H,a];r=RandomChoice;R=RandomReal;l=Length;
q[Q_]:=" "<>ToString[Q[[2]]]<>" "<>Switch[Q[[1]],H,"Higgs Boson",z,"Bottom Quark",Z,"Bottom Antiquark",W,"W Boson",G,"Gluon",TL,"Tau Lepton",L,"Tau Antilepton",f,"Charm Quark",F,"Charm Antiquark",Z,"Z Boson",p,"Photons",M,"Muon",y,"Antimuon",x,"Top Quark",X,"Top Antiquark",P,"Positron",n,"Neutrino",c,"Antineutrino",e,"Electron",w,"Strange Antiquark",W,"Strange Quark",M,"Down Antiquark",o,"Down Quark",A,"Up Antiquark",B,"Up Quark"]
While[MemberQ[b,H|W|Z|x|X],m++;b=Flatten[(Switch[#,H,If[R[]<0.1,r[{.648,.141,.882,.0704,.0327,.0159,.00223,.00111,.000244,.000216}->{{z,Z},{W,W},{G,G},{TL,L},{f,F},{Z,Z},{p,p},{Z,P},{M,y},{x,X}}],H],W,If[R[]<0.5,r[{{P,n},{y,n},{L,n}}],W],Z,If[R[]<0.5,r[{0.206,0.034,0.034,0.034,0.152,0.152,0.152,0.118,0.118}->{{n,c},{e,P},{M,y},{TL,L},{o,M},{w,w},{z,Z},{B,A},{f,F}}],Z],(x|X),If[R[]<0.1295,r[{{W,o},{W,w},{W,z}}]],_,#]
)&/@b];s=q/@(Normal@Counts[b]/.Rule->List);Print["The universe contains"<>StringJoin[Flatten[Transpose[{Table[If[l@s==i,If[l@s==1,""," and"],If[i==1,"",","]],{i,1,l@s}],s}]]]<>"."];]
Print["Simulation ended after "<>ToString[0.1*m]<>" yoctoseconds."]

স্টার্টপাটার একটির জন্য মান পরিবর্তন করে চয়ন করে নিতে পারে।

আমি লক্ষ্য করেছি যে আমি হিগস বোসনের জন্য ভুল সম্ভাবনাটি ব্যবহার করেছি তবে বর্তমানে এটি পরিবর্তন করতে পারছি না (কয়েক ঘন্টা বা তার মধ্যে)। সুতরাং বর্তমান দ্রবণে 3 টি ওডার 4 বাইট যুক্ত করুন। (এটি একটি পরীক্ষা-মূল্য ছিল)


3
প্রায় এক বছরের জন্য পূর্বের সেরাটি দাঁড়িয়েছিল এবং আপনি আমার আমার 10 ঘন্টা পরে পোস্ট করেছেন! ঠান্ডা, মানুষ। :)
অ্যালেক্স হাওয়ানস্কি

2
যেহেতু আপনি চ্যালেঞ্জটি কাটিয়েছেন আমার এটিও করতে হয়েছিল। আমি দুঃখিত. : ডি
জুলিয়েন ক্লুজ

5

পার্ল, 973 986 959 944 বাইট -10% = 849.6 পয়েন্ট

ইন্ডেন্টেশন এবং নিউলাইনগুলি কোডের অংশ নয়, এবং এটি সম্পূর্ণরূপে সরবরাহ করা হয় যাতে আপনি সমস্ত কিছু পড়তে 30 বছর স্ক্রল করছেন না।

0 টি বাইট অপটিমাইজেশন রয়েছে যা আমি কখনই পূর্বাবস্থায় ফেলার চিন্তা করি নি।

%p=(H,Higgs.($o=$".Boson),W,W.$o,Z,Z.$o,B,Bottom.($Q=$".Quark),b,Bottom.($q=$".Antiquark),G,Gluon,A,Tau.($t=$".Lepton),a,Antitau.$t,P,Photon,M,Muon,w,Antimuon,T,Top.$Q,t,Top.$q,e,Positron,N,Neutrino,n,Antineutrino,E,Electron,D,Down.$Q,d,Down.$q,S,Strange.$Q,z,Strange.$q,U,Up.$Q,u,Up.$q,C,Charm.$Q,c,Charm.$q);
%d=(H,[433e-6,.648,Bb,.141,WW,.0882,GG,.0704,Aa,.0327,Cc,.0159,ZZ,.00223,PP,.00111,ZP,244e-6,Mw,216e-6,Tt],W,[.5,$x=1/3,eN,$x,wN,$x,tN],Z,[.5,.206,Nn,.034,Ee,.034,Mw,.034,Aa,.152,Dd,.152,Sz,.152,Bb,.152,Uu,.118,Uu,.118,Cc],T,[.1295,$x,WD,$x,WS,$x,WB],t,[.1295,$x,Wd,$x,Wz,$x,Wb]);
for(@a=(H)x<>;grep/[HWZTt]/,@a;$z++){
    for$m(@a){
        @b=(@b,$m),next if$d{$m}[0]<rand;
        $e=rand;
        ($e-=$d{$m}[($_*=2)+1])>0||($e=2,@b=(@b,split//,$d{$m}[$_+2]))for 0..9
    }
    (@a,@b,%u,$w)=@b;
    $u{$_}++for@a;
    $w.=" $u{$_} $p{$_}".($u{$_}>1?'s,':',')for keys%u;
    say"The universe contains",$w=~s/.$/./r=~s/,([^,]+)$/ and$1/r
}
$z/=10;say"Simulation ended after $z yoctoseconds."

স্পষ্টতই, কোডের বেশিরভাগ অংশ প্রাথমিক হ্যাশগুলি তৈরি করছে। %pপারেলের খালি শব্দ বৈশিষ্ট্যটি ব্যবহার করে সমস্ত কণার নাম রয়েছে। %rক্ষয়ের হার নির্ধারণ করে যদি এটি এখানে বৈশিষ্ট্যযুক্ত না হয়, তবে এটি মোটে ক্ষয় হয় না। %dক্ষয় কণা রয়েছে।

যেহেতু আউটপুটে কণাগুলির ক্রম কোনও ব্যাপার নয়, পার্ল হ্যাশের কীগুলি অবিচ্ছিন্নভাবে অ্যাক্সেস করে তা থেকে পরিবর্তন করা আমি বিরক্ত করব না, যা নিম্নলিখিতগুলির মতো জিনিসগুলিতে নিয়ে যায়:

[snip]
The universe contains 1 Higgs Boson.
The universe contains 1 Higgs Boson.
The universe contains 2 W Bosons.
The universe contains 2 Neutrinos, 1 Positron and 1 Top Antiquark.
The universe contains 1 Top Antiquark, 1 Positron and 2 Neutrinos.
The universe contains 1 Top Antiquark, 1 Positron and 2 Neutrinos.
The universe contains 1 Top Antiquark, 1 Positron and 2 Neutrinos.
The universe contains 2 Neutrinos, 1 Positron and 1 Top Antiquark.
The universe contains 1 Positron, 1 Top Antiquark and 2 Neutrinos.
The universe contains 2 Neutrinos, 1 Top Antiquark and 1 Positron.
The universe contains 1 Positron, 1 Strange Antiquark, 2 Neutrinos, 1 Bottom Antiquark and 2 W Bosons.
The universe contains 1 W Boson, 1 Bottom Antiquark, 2 Neutrinos, 1 Positron and 1 Strange Antiquark.
The universe contains 2 Neutrinos, 1 Bottom Antiquark, 1 W Boson, 1 Strange Antiquark and 1 Positron.
The universe contains 1 W Boson, 1 Bottom Antiquark, 2 Neutrinos, 1 Strange Antiquark and 1 Positron.
The universe contains 1 Bottom Antiquark, 4 Neutrinos, 1 Antimuon, 2 Positrons and 1 Strange Antiquark.

এটি সত্যিই একটি উদ্দীপনা সাহস হয়েছে। আশ্চর্য ধাঁধা, সত্যি বলতে, আমি অনেক মজা পেয়েছিলাম! :)


5

পাইথন 3.6.1, 1183 1157 ... 905 889 * 0.9 = 800.1 বাইট

প্রথমবারের মধ্যে একটি জমা দেওয়ার পরেও এই চ্যালেঞ্জটি বেশ মজাদার লাগছিল তাই আমরা এখানে যাচ্ছি ...

প্রায় অবশ্যই এটি হতে পারে হিসাবে গল্ফড না তবে আমি এটিতে বেশ অনভিজ্ঞ রয়েছি তাই কোনও পরামর্শই স্বাগত।

from random import*
w,z='WZ';b,q,v=' boson',' .quark',[1]*3;p,n,u,t={'H':[433e-6,['Bb',w*2,'GG','Xx','Cc',z*2,'PP','ZP','Mm','Tt'],[6480,1410,882,704,32.7,15.9,2.23,1.11,.244,.216]],w:[.5,['FN','mN','xN'],v],z:[.5,['Nn','EF','Mm','Xx','Dd','Ss','Bb','Uu','Cc'],[2060]+[340]*3+[152]*3+[118]*2],'T':[.1295,['WD','WS','WB'],v]},{'H':'Higgs'+b,'B':'bottom'+q,w:w+b,'G':'gluon','X':'.tau lepton','C':'charm'+q,z:z+b,'P':'photon','M':'.muon','T':'top'+q,'E':'electron','F':'positron','N':'.neutrino','D':'down'+q,'S':'strange'+q,'U':'up'+q},['H']*int(input()),0
while{*u}&{*p}:
    for x in[*u]:
        if x in p and random()<p[x][0]:u.remove(x);u+=choices(*p[x][1:])[0]
    print("The universe contains %s."%' and'.join((', '.join(str(u.count(x))+' '+n[x.upper()].replace('.',(x>x.upper())*'anti')+(1<u.count(x))*'s'for x in{*u})).rsplit(',',1)));t+=.1
print('Simulation ended after %.1f yoctoseconds.'%t)

এটি অনলাইন চেষ্টা করুন!

সম্পাদনা করুন: ব্রিভিটির স্বার্থে, আমি সম্পাদনাগুলির একটি সংক্ষিপ্ত তালিকা (সহায়তার জন্য মন্তব্যকারীদের ধন্যবাদ!):

  • ক্যাট উইজার্ড (নিউলাইনগুলির পরিবর্তে সেমিকোলন) এবং অন্যান্য পাইথন উত্তর (স্ট্রিং সংজ্ঞায়িত কয়েক বাইট সংরক্ষণ করে) 25 টি বাইট সংরক্ষণ করে
  • আরও একটি 107 (!) বাইট সংরক্ষণের জন্য আরও কয়েকটি জিনিস বের করা হয়েছে, ডিক্টের বেশিরভাগ মাত্র আরও ভাল ব্যবস্থা এবং এটি আর কার্যকরী নয়।
  • অনুধাবন random.choices()হ'ল ওজনযুক্ত সম্ভাবনা, শতাংশ নয়, তাই আমি দশটি - 28 বাইট সংরক্ষণের কয়েকটি শক্তি বাড়িয়ে কিছু বাইট বাঁচাতে পারতাম! হিগসের ক্ষয় সম্ভাবনা ভুল ছিল - আমি 0.043% এর পরিবর্তে 0.43% পড়েছি যাতে দুটি বাইট ব্যয় হয়।
  • হরেক রকম অভিনব ঠাট থেকে অন্য 28 বাইট সংরক্ষিত - পরিবর্তে ছেদ সেট any(), +=পরিবর্তে list.extend()এবং একটি ভিন্ন importবিবৃতি।
  • choices(*p[x][1:])কয়েকটি দম্পতিকে বাঁচাতে এবং x and y or zএড়ানোর জন্য ব্যবহৃত তালিকাগুলির জন্য নেস্টেড ডিক্টগুলি অদলবদল করে if...else...or
  • সামান্যতর ভাল কার্যনির্বাহী, এলবিওয়াইএল আরও ভাল কাজ করে এবং এর পরিবর্তে enumerate()মহাবিশ্বের অনুলিপি করে এবং মূলটিতে ব্যবহার list.remove()করে ( enumerateপদ্ধতিটি যেমন ঘটেছিল তেমনভাবেই ভেঙে গেছে)।
  • নিখোঁজ কিছু, নিখুঁত print()বিবৃতি এবং মার্জ ifস্টেটমেন্টগুলি দু'টি স্থির করে । কিছু অপ্রয়োজনীয় বন্ধনী অপসারণ করা হয়েছে।

আরও পঠনযোগ্য সংস্করণ:

from random import *
w,z='WZ'
b,q,v=' boson',' .quark',[1]*3
        # Decayable particle products/probabilities
p,n,u,t={'H':[433e-6,['Bb',w*2,'GG','Xx','Cc',z*2,'PP','ZP','Mm','Tt'],[6480,1410,882,704,32.7,15.9,2.23,1.11,.244,.216]],
            w:[.5,['FN','mN','xN'],v],z:[.5,['Nn','EF','Mm','Xx','Dd','Ss','Bb','Uu','Cc'],[2060]+[340]*3+[152]*3+[118]*2],
            'T':[.1295,['WD','WS','WB'],v]},
        # Particle names
        {'H':'Higgs'+b,'B':'bottom'+q,w:w+b,'G':'gluon','X':'.tau lepton','C':'charm'+q,z:z+b,
            'P':'photon','M':'.muon','T':'top'+q,'E':'electron','F':'positron','N':'.neutrino',
            'D':'down'+q,'S':'strange'+q,'U':'up'+q},
        # Universe
        ['H']*int(input()),
        # Time taken
        0
while {*u} & {*p}: # While any particles can still decay
    for x in[*u]: # Iterate through them
        if x in p and random()<p[x][0]: # Check if they should decay
            u.remove(x) # If they should, remove them
            u+=choices(*p[x][1:])[0] # And add in the products
    # Join particle names with their counts together, separated by ',', add 'anti' where
    # needed, add 's' where needed, replace last ',' with 'and', then print.
    a = ' and'.join((', '.join(str(u.count(x))
                    + ' '
                    + n[x.upper()].replace('.',(x>x.upper())*'anti')
                    + (1<u.count(x))*'s' for x in {*u})).rsplit(',',1))
    print("The universe contains %s." % a)
    t+=.1
print('Simulation ended after %.1f yoctoseconds.'%t)

5000 হিগ বোসনের সাথে নমুনা আউটপুট - কোনও শীর্ষ কোয়ার্ক ক্ষয় হয় কিনা তা দেখতে পরে আরও বড় রান করতে পারে:

The universe contains 1 up antiquark, 23 charm quarks, 1 electron, 23 charm antiquarks, 371 tau leptons, 1542 neutrinos, 500 antimuons, 16 antineutrinos, 505 positrons, 4 muons, 3 photons, 3373 bottom quarks, 3373 bottom antiquarks, 1 up quark, 916 gluons and 897 antitau leptons.
Simulation ended after 2410.5 yoctoseconds.

আমি যদি কিছু ভুল করে ফেলে থাকেন তবে দয়া করে আমাকে জানান এবং আমি এটি ঠিক করার চেষ্টা করব!


4

রুবি, 997 995 বাইট -10% = 895.5 পয়েন্ট

সম্পাদনা: ব্রেডবক্স দ্বারা লক্ষ্য করা হিসাবে সর্বশেষ ডিলিমিটার হিসাবে যুক্ত 'এবং'

পিপিসিজিতে প্রথমবার পোস্ট করা, এটি একটি পুরানো চ্যালেঞ্জ তবে এটি করতে আমি বেশ মজা পেয়েছিলাম। কোডটি এখানে

s=%w(boson quark top bottom anti tau lepton charm muon neutrino down strange up)
t="Higgs 0;Z 0;W 0;2 1;2 41;3 1;3 41;gluon;5 6;45 6;7 1;7 41;photon;8;48;positron;9;49;electron;#a 1;#a 41;#b 1;#b 41;#c 1;#c 41"
h=[4.33e-2,50,50,12.95]
d=[[64.8,14.1,8.82,7.04,3.27,1.59,0.223,0.111,0.0244,0.0216],[20.6,*[3.4]*3,*[15.2]*3,*[11.8]*2],*[[33.3]*3]*3]
r=["fgcchhijklbbmmbmnode","qrspnoijtuvwfgxykl","pqoqjq","ctcvcf","ctcvcf"]
r=r.map{|a|a.chars.map{|e|e.ord-97}}
s.size.times{|i|c=i>9?"#"+(i+87).chr: i.to_s;t=t.gsub(c,s[i])}
t=t.split(';')
z=Random.new
p=[0]*25
p[0]=gets.to_i
o=0
f=->p{puts"The universe contains "+(*a,b=(0..24).map{|i|e=p[i];e>0?"#{e} "+t[i]+(e>1?"s":""):nil}.compact;a*", "+(a.size>0?" and ":"")+b)+"."}
while p[0..4].sum>0 do
    f[p]
    q=p.clone
    (0..4).map{|i|p[i].times{|j|a=z.rand(100.0);a<h[i]?(q[i]-=1;a=z.rand(100.0);d[i].size.times{|k|a<d[i][k]?(q[r[i][k]]+=1;q[r[i][k+1]]+=1):a-=d[i][k]}):0}}
    p=q.clone
    o+=1
end
f[p]
puts "Simulation ended after #{o/10.0} yoctoseconds."

স্ট্রিংগুলি পুনরাবৃত্ত শব্দের (ভার্স sএবং t) ফ্যাক্টর দ্বারা সংকুচিত করা হয় ক্ষয়ের পণ্যগুলি সংক্ষিপ্তভাবে স্ট্রিং (ভার r) হিসাবে সংরক্ষণ করা হয় , প্রতিটি অক্ষর একটি কণা হয়। একটি ফাংশন fকণা অ্যারেগুলিতে স্ট্রিং করে মহাবিশ্বের অবস্থা মুদ্রণ করে। আমি মনে করি স্টেট আপডেট লাইনে কাটা কাটাতে কিছু বাইট রয়েছে তবে এর থেকে ভাল আর কিছু পাই না।

নমুনা আউটপুট

[snip]
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 3 W bosons, 4 gluons and 1 tau lepton.
The universe contains 3 W bosons, 4 gluons and 1 tau lepton.
The universe contains 2 W bosons, 4 gluons, 1 tau lepton, 1 antimuon and 1 neutrino.
The universe contains 2 W bosons, 4 gluons, 1 tau lepton, 1 antimuon and 1 neutrino.
The universe contains 1 W boson, 4 gluons, 1 tau lepton, 3 antimuons, 1 positron and 4 neutrinos.
The universe contains 4 gluons, 1 tau lepton, 4 antimuons, 1 positron and 5 neutrinos.
Simulation ended after 653.2 yoctoseconds.

কর্মক্ষমতা

এটি অতটা খারাপ না! এটি 25 সিসিতে 100000 হিগস বোসনের গণনা করেছে

The universe contains 64751 bottom quarks, 93044 bottom antiquarks, 170984 gluons, 59927 tau leptons, 33038 antitau leptons, 14718 charm quarks, 12419 charm antiquarks, 5250 muons, 261567 antimuons, 53148 positrons, 305169 neutrinos, 2142 antineutrinos, 1575 electrons, 14080 down quarks and 7926 down antiquarks.
Simulation ended after 3131.4 yoctoseconds.

সাইটে স্বাগতম! >আপনার নিজের চারপাশে ফাঁকা জায়গা দরকার while? রুবিতে কিছু করার পরে অনেকক্ষণ হয়ে গেছে।
শ্রীলোচিলিজম ওজাইক

একটি সমস্যা: আপনার কণার তালিকায়, চ্যালেঞ্জের প্রয়োজনীয়তাগুলি পূরণ করতে সর্বশেষ কমাটি এবং with দিয়ে প্রতিস্থাপন করা দরকার।
ব্রেডবক্স

2

ডি, 1172 1101 বাইট - 10% = 990.9 বাইট

import std.random,std.conv,std.stdio,std.algorithm,std.range;alias I=int,V=void,S=string,F=float,U=uniform01!F,W=writef,J=join,X=split;V main(S[]v){I[26]c;c[0]=to!I(v[1]);S[84]s;s[65..$]="antiX bosonXcharm Xdown XelectronXZXgluonXHiggsXtop Xbottom Xup Xtau leptonXmuonXneutrinoXWXphotonXquarkXpositronXstrange ".X('X');S[]f="HBXOBXFBXKQXKAQXDQXDAQXIQXIAQXJQXJAQXSQXSAQXCQXCAQXLXALXEXRXGXPXMXAMXNXAN".X('X');V 
D(I i,F p,F[]d,S v){d~=200;if(c[i]&&U()<p){c[i]--;p=U();foreach(j,q; d){if(p<q/100){c[v[2*j]-65]++;c[v[2*j+1]-65]++;break;}}}}S
C(T)(T s){return(s.length>1)?s[0..$-1].J(", ")~" and "~s[$-1]:s.J(" and ");}I
y=0;while(1){W("The universe contains "~C(iota(0,c.length).filter!(i=>c[i]).map!(i=>to!S(c[i])~" "~f[i].map!(a=>s[a]).J~((c[i]>1)?"s":"")).array)~".\n");y++;if(c[0]+c[1]+c[7]+c[8]<1)break;F[]u=[100/3.0,200/3.0];D(0,.000433,[.0216,.0460,.157,.38,1.97,5.24,12.28,21.1,35.2],"HIVWCUUUCCNOPQTTBBJK");D(2,.5,[11.8,23.6,38.8,54.,69.2,72.6,76.,79.4],"XYRSVWPQFGLMJKDENO");D(1,.5,u,"SXWXQX");D(7,.1295,u,"BFBLBJ");D(8,.1295,u,"BGBMBK");}W("Simulation ended after %f yoctoseconds.\n",y/10.0);}

Ungolfed

import std.random,std.conv,std.stdio,std.algorithm,std.range;
alias I=int,V=void,S=string,F=float,U=uniform01!F;

//uppercase is antiparticle.  The enums are replaced with constants
//in the golfed version.
enum P{ 
    h, w, z, //bosons
    u,U, d,D, t,T, b,B, s,S, c,C,//quarks
    l,L, //tau lepton, antitau lepton
    e,E, //electron,positron
    g, //gluon
    p, //photon
    m,M, //muon, antimuon
    n, N, //neutrino, antineutrino
};

void main(string[] v) {
    int[26]c;//particle counts
    c[0]=to!int(v[1]);//mandatory argument

    string format_particle(ulong i) {
        string[84] strs;
        strs[65..$]=["anti"," boson","charm ","down ","electron",/*f*/"Z",
        "gluon","Higgs",/*i*/"top ",/*j*/"bottom ",/*k*/"up ","tau lepton","muon","neutrino",/*o*/"W","photon","quark",/*r*/"positron","strange "];
        string[] fmt = [
            "HB","OB","FB",//bosons
            "KQ","KAQ",//up
            "DQ","DAQ",//down
            "IQ","IAQ",//top
            "JQ","JAQ",//bottom
            "SQ","SAQ",//strange
            "CQ","CAQ",//charm
            "L","AL",//Tau leptons
            "E","R",//electron/positron
            "G", //gluon
            "P", //photon
            "M","AM", //muon, antimuon
            "N", "AN", //neutrino, antineutrino
        ];
        //In the golfed version, we instead use X to delimit strings and call split to convert to array.

        return to!string(c[i])
            ~ " " ~ fmt[i].map!(a=>strs[a]).join
            ~ ((c[i]>1) ? "s" : "");
    }

    /* if there exist any of particle `i`, 
       it decays with probability `p`.
       into the particles specified in `v[j]`
       where `j` is drawn from distribution `decay_probs` */
    void decay(int i, float p, float[] decay_probs, P[] v...) {
        decay_probs ~= 2;//1.0, but with a margin for error in case of floating point precision issues
        if (c[i] && U()<p){
            c[i]--;

            p=U();
            foreach(j,q; decay_probs) {
                if (p<q) {
                    c[v[2*j]]++;
                    c[v[2*j+1]]++;
                    /*writef("Decay %s, Add: %s, %s\n",
                        format_particle(i),
                        format_particle(v[2*j]), format_particle(v[2*j+1]));*/
                    break;
                }
            }
        }
    }

    int y=0;
    while(1) {
        string commas(T)(T s) {
            return (s.length > 1)
                ?  s[0..$-1].join(", ") ~ " and " ~ s[$-1]
                :  s.join(" and ");
        }

        //print line for particle `d`
        writef("The universe contains " 
            ~ commas(
                iota(0,c.length)
                    .filter!(i=>c[i])
                    .map!(i=>format_particle(i))
                    .array) ~ ".\n");

        y++;
        if(c[P.h]+c[P.w]+c[P.t]+c[P.T]<1)break;

        F[] u = [1/3.0,2/3.0];
        decay(P.h, .000433,
            [.000216,.000460,.00157,.0038,.0197,.0524,.1228,.211,.352],
            P.t,P.T, P.m,P.M, P.z,P.p, P.p,P.p, P.z,P.z, P.c,P.C, P.l,P.L, P.g,P.g, P.w,P.w, P.b,P.B); 
        decay(P.z, .5,
            [.118,.236,.388,.54,.692,.726,.76,.794],
            P.n,P.N, P.e,P.E, P.m,P.M, P.l,P.L, P.d,P.D, P.s,P.S, P.b,P.B, P.u,P.U, P.c,P.C);
        decay(P.w,    .5, u, P.E,P.n, P.M,P.n, P.L,P.n);
        decay(P.t, .1295, u, P.w,P.d, P.w,P.s, P.w,P.b);
        decay(P.T, .1295, u, P.w,P.D, P.w,P.S, P.w,P.B);
        //In the golfed version, the list of enums is replaced by a string: each char is 65 + the enum's value.  D() is adjusted to subtract it again.
    }

    writef("Simulation ended after %f yoctoseconds.\n", y/10.0);
}

2

কোটলিন : 1330 - 10% = 1197 বাইট

আমার প্রথম কোড গল্ফ জমা; তালিকা মানচিত্রের চেয়ে গল্ফিয়ার হওয়ার কারণে খুব অযোগ্য, তবে আপাতদৃষ্টিতে সঠিক! জেভিএম বা জেএস বাস্তবায়নে কাজ করে এবং একটি (alচ্ছিক) যুক্তি নেয়।

operator fun String.minus(p:Pair<String,String>)=replace(p.first,p.second)
operator fun<A,B>A.div(b:B)=to(b)
val l=1.0
val e=l/3
val t=l-e
enum class V(val c:Double=.0,vararg val v:Pair<Pair<V,V>,Double>){E,F,G,P,L,AL,M,AM,N,AN,_Q,_AQ,CQ,CAQ,DQ,DAQ,SQ,SAQ,UQ,UAQ,WB(.5,P/N/e,AM/N/t,AL/N/l),TQ(.1295,WB/DQ/e,WB/SQ/t,WB/_Q/l),TAQ(.1295,WB/DAQ/e,WB/SAQ/t,WB/_AQ/l),ZB(.5,N/AN/.206,E/P/.24,M/AM/.274,L/AL/.308,DQ/DAQ/.46,SQ/SAQ/.612,_Q/_AQ/.764,UQ/UAQ/.882,CQ/CAQ/l),HiggsB(.000433,_Q/_AQ/.648,WB/WB/.789,G/G/.8772,L/AL/.9476,CQ/CAQ/.9803,ZB/ZB/.9962,F/F/.99843,ZB/F/.99954,M/AM/.999784,TQ/TAQ/l);fun d()=if(Math.random()<c)with(Math.random()){v.first{this<it.second}.first.toList()}else listOf(this)
override fun toString()=name-"_"/"bottom "-"A"/"anti"-"B"/" boson"-"C"/"charm "-"D"/"down "-"E"/"electron"-"F"/"photon"-"G"/"gluon"-"L"/"tau lepton"-"N"/"neutrino"-"M"/"muon"-"P"/"positron"-"Q"/"quark"-"S"/"strange "-"T"/"top "-"U"/"up "}
fun main(vararg a:String){var t=.0
var l=List(a.lastOrNull()?.toInt()?:1){V.HiggsB}
while(true){++t
var s="The universe contains"
with(l.toSet()){forEachIndexed{i,p->l.count{it==p}.let{s+=(" $it $p")
if(it>1)s+='s'
s+=when(size){i+1->"."
i+2->" and"
else->","}}}}
println(s)
if(l.filter{it.c>0}.isEmpty())break
for(p in l){l-=p;l+=p.d()}}
t/=10
print("Simulation ended after $t yoctoseconds.")}

কম গল্ফড সংস্করণ

operator fun String.minus(p:Pair<String,String>)=replace(p.first,p.second)
operator fun<A,B>A.div(b:B)=to(b)
val l=1.0
val e=l/3
val t=l-e
enum class V(val c:Double=.0,vararg val v:Pair<Pair<V,V>,Double>){
    E,F,G,P,L,AL,M,AM,N,AN,_Q,_AQ,CQ,CAQ,DQ,DAQ,SQ,SAQ,UQ,UAQ,
    WB(.5,P/N/e,AM/N/t,AL/N/l),
    TQ(.1295,WB/DQ/e,WB/SQ/t,WB/_Q/l),
    TAQ(.1295,WB/DAQ/e,WB/SAQ/t,WB/_AQ/l),
    ZB(.5,N/AN/.206,E/P/.24,M/AM/.274,L/AL/.308,DQ/DAQ/.46,SQ/SAQ/.612,_Q/_AQ/.764,UQ/UAQ/.882,CQ/CAQ/l),
    HiggsB(.000433,_Q/_AQ/.648,WB/WB/.789,G/G/.8772,L/AL/.9476,CQ/CAQ/.9803,ZB/ZB/.9962,F/F/.99843,ZB/F/.99954,M/AM/.999784,TQ/TAQ/l);
    override fun toString()=name-
        "_"/"bottom "-
        "A"/"anti"-
        "B"/" boson"-
        "C"/"charm "-
        "D"/"down "-
        "E"/"electron"-
        "F"/"photon"-
        "G"/"gluon"-
        "L"/"tau lepton"-
        "N"/"neutrino"-
        "M"/"muon"-
        "P"/"positron"-
        "Q"/"quark"-
        "S"/"strange "-
        "T"/"top "-
        "U"/"up "
    fun d()=if(Math.random()<c)
        with(Math.random()){
            v.first{this<it.second}.first.toList()
        }else listOf(this)
}
fun main(vararg a:String){
    var t=.0
    var l=List(a.lastOrNull()?.toInt()?:99){V.HiggsB}
    while(true){
        ++t
        var s="The universe contains"
        with(l.toSet()){
            forEachIndexed{i,p->
                l.count{it==p}.let{
                    s+=(" $it $p")
                    if(it>1)s+='s'
                    s+=when(size){
                        i+1->"."
                        i+2->" and"
                        else->","
                    }
                }
            }
        }
        println(s)
        if(l.filter{it.c>0}.isEmpty())break
        for(p in l){l-=p;l+=p.d()}
    }
    t/=10
    print("Simulation ended after $t yoctoseconds.")
}

1

বেশ দীর্ঘ জমা।

তেমন গল্ফ হয়নি তবে অন্য অজগরটির চেয়ে এখনও খাটো।

ইনপুট হিসাবে প্রাথমিক পরিমাণে হিগস নিন।

পাইথন 3 , 1134 1120 বাইট - 10% = 1020.6 1008 পয়েন্ট

from random import *
n=int(input())
M=random
seed()
def D(i):
 for a in i:d[a]=d[a]+1 if a in d else 1
def X(p,A,B):
 for l in d[s]*' ':
  n[0]=1
  if M()<=p:d[s]-=1;r=M();D(A[B.index(next(x for x in B if x>r))])
s=lambda x:x.replace(Z,'')
Z,C,e,i,k,m,p,t,v='anti, boson,electron,gluon,neutrino,muon,photon,tau lepton,positron'.split(',')
B=' '+Z+'quark'
a='bottom'+B
c='charm'+B
f='down'+B
h="Higgs"+C
o='top'+B
u=Z+k
w="W"+C
x=Z+m
y=Z+t
z='Z'+C
S='strange'+B
U='up'+B
b,g,j,q,Q,T=map(s,[a,f,c,o,S,u])
d={h:n,0:0}
I=0
A=[(a,b),(w,w),(i,i),(t,y),(c,j),(z,z),(p,p),(z,p),(m,x),(o,q)]
B=[.648,.789,.8772,.9476,.9803,.9962,.99843,.99954,.999784,1]
O=[[k,v],[k,x],[k,y]]
E=[1/3,2/3,1]
F=[(u,k),(e,v),A[8],A[3],(g,f),(S,Q),A[0],(T,U),(c,j)]
G=[.206,.24,.274,.308,.46,.612,.764,.882,1]
H=[[w,g],[w,Q],[w,a]]
n={1}
while n:
 I+=1
 n={}
 P=dict(d)
 for s in P:
  if s==h:X(.00433,A,B)
  if s==w:X(.5,O,E)
  if s==z:X(.5,F,G)
  if s in [q,o]:X(.1295,H,E)
 l='The universe contains '
 for s in d:l+= str(d[s])+' '+s+'s'*(d[s]>1)+', ' if d[s]>0 else ''
 print(l[:-2]+'.')
print('Simulation ended after '+str(I/10)+' yoctoseconds.')

এটি অনলাইন চেষ্টা করুন!


1

এফ #, 1993 1908 বাইট - 10% = 1718 বাইট

open System
let r=new Random()
let p()=r.NextDouble()*100.0
type P=
 |A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
let q="quark"
let n=dict[(A,"Higgs boson");(B,"Bottom "+q);(C,"Bottom anti"+q);(D,"Top "+q);(E,"Top anti"+q);(F,"W boson");(G,"Gluon");(H,"Tau lepton");(I,"Anti-tau lepton");(J,"Charm "+q);(K,"Charm anti"+q);(L,"Z boson");(M,"Photon");(N,"Muon");(O,"Antimuon");(P,"Antiquark");(Q,"Positron");(R,"Neutrino");(S,"Antineutrino");(T,"Electron");(U,"Down"+q);(V,"Down anti"+q);(W,"Strange "+q);(X,"Strange anti"+q);(Y,"Up "+q);(Z,"Up anti"+q);]
let c(u:P seq)=Option.isSome(Seq.tryFind(fun p->Seq.contains p [A;F;L;D])u)
let w()=
 if r.Next(2)=0 then
  let p=r.Next(3)
  if p=0 then[Q;R]elif p=1 then[O;R]else[I;R]
 else[F]
let t a=
 if p()<12.95 then
  let p=r.Next(3)
  if p=0 then[F;U]elif p=1 then[F;W]else[F;B]
 else[a]
let h()=
 if p()<0.0433 then
  let p=p()
  if p<64.8 then[B;C]elif p<78.9 then[F;F]elif p<87.72 then[G;G]elif p<94.76 then[H;I]elif p<98.03 then[J;K]elif p<99.62 then[L;L]elif p<99.843 then[M;M]elif p<99.954 then[L;M]elif p<99.9784 then[N;O]else[D;E]
 else[A]
let z()=
 if r.Next(2)=0 then
  let p=p()
  if p<20.6 then[R;S]elif p<24.0 then[T;Q]elif p<27.4 then[N;O]elif p<30.8 then[H;I]elif p<46.0 then[U;V]elif p<61.2 then[W;X]elif p<76.4 then[B;C]elif p<88.2 then[Y;Z]else[J;K]
 else[F]
let d u=List.map(fun p->if p=A then h()elif p=F then w()elif p=L then z()elif p=D||p=E then t p else[p])u|>List.concat 
let b h=List.init h (fun x->id A)
let o u=
 let e=List.countBy id u|>List.map(fun t->n.[fst t],snd t)|>List.map(fun t->
   if snd t>1 then(snd t,(fst t)+"s")else snd t,fst t)
 String.Join(", ",(List.map(fun x->(string(fst x))+" "+(snd x))e))|>printfn"The universe contains %s."
let [<EntryPoint>]m a=
 let mutable u=int a.[0]|>b
 let mutable t=0
 while c u do
  o u
  u<-d u
  t<-t+1
 o u
 (float t)/10.0|>printfn"Simulation ended after %f yoctoseconds."
 0

এটি অনলাইন চেষ্টা করুন!

অবহেলিত এটি দেখতে এটির মতো দেখাচ্ছে:

এটি অনেক কণা ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.