অবিচ্ছিন্ন ওজনযুক্ত এলোমেলো বিতরণ, এক প্রান্তে পক্ষপাতদুষ্ট


28

আমি বর্তমানে আমাদের গেমের জন্য একটি কণা সিস্টেমে অবদান রাখছি এবং কিছু ইমিটার আকার বিকাশ করছি।

আমার অভিন্ন র্যান্ডম বিতরণ একটি লাইন বরাবর বা আয়তক্ষেত্রাকার অঞ্চল বরাবর কাজ করে - কোন সমস্যা নেই।

তবে এখন আমি এই বিতরণে 1 মাত্রিক গ্রেডিয়েন্টের মতো কিছু পেতে চাই। এর অর্থ হ'ল উদাহরণস্বরূপ নিম্ন মানগুলি উচ্চতর মানের চেয়ে বেশি সাধারণ।

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



কেউ কি ক্যালকুলাসের উল্লেখ করতে যাচ্ছেন না?
অ্যালেক টেলি

উত্তর:


42

এই ছবি কটাক্ষপাত করা:

কার্ভ ম্যাপিং

এটি একটি বক্ররেখা (এলোমেলো) মান ম্যাপ করার প্রক্রিয়াটি দেখায়। ধরুন আপনি 0 থেকে 1 অবধি সমান-বিতরিত এলোমেলো মান এক্স উত্পন্ন করেন, এই মানটি একটি বক্ররেখা ম্যাপ করে - বা, অন্য কথায়, এক্সের পরিবর্তে f (এক্স) ব্যবহার করে - আপনি আপনার বিতরণটি যেভাবে পছন্দ করতে পারেন তা স্কু করতে পারেন ।

এই ছবিতে, প্রথম বক্ররেখা উচ্চতর মানগুলিকে আরও বেশি করে তোলে; দ্বিতীয়টি কম মানকে আরও বেশি সম্ভাবনা দেয়; এবং তৃতীয়টি মাঝখানে মানগুলি ক্লাস্টার তৈরি করে। বক্ররেখার সঠিক সূত্রটি সত্যই গুরুত্বপূর্ণ নয় এবং আপনার পছন্দ মতো বেছে নেওয়া যেতে পারে।

উদাহরণস্বরূপ, প্রথম বক্ররেখাটিকে কিছুটা বর্গমূলের মতো দেখায় এবং দ্বিতীয়টি - বর্গক্ষেত্রের মতো। তৃতীয়টি কিছুটা কিউবের মতো, কেবল অনুবাদ। আপনি যদি বর্গমূলকে খুব ধীর বলে মনে করেন তবে প্রথম বক্ররেখকে চ (এক্স) = 1- (1-এক্স) ^ 2 - বর্গের বিপরীত রূপের মতো দেখায়। বা একটি হাইপারবোল: চ (এক্স) = 2 এক্স / (1 + এক্স)।

চতুর্থ কার্ভের শো হিসাবে, আপনি কেবল প্রাক্পম্পিউটেড লুকিং টেবিলটি ব্যবহার করতে পারেন। এটি একটি বক্র হিসাবে কুৎসিত দেখাচ্ছে, কিন্তু সম্ভবত একটি কণা সিস্টেমের জন্য যথেষ্ট ভাল হবে।

এই সাধারণ কৌশলটি খুব সাধারণ এবং শক্তিশালী। আপনার যা যা বিতরণ দরকার, কেবল একটি বক্ররেখা ম্যাপিংয়ের কল্পনা করুন এবং আপনি কোনও সময় ছাড়াই একটি সূত্র তৈরি করবেন। অথবা, যদি আপনার ইঞ্জিনের সম্পাদক থাকে তবে কেবল বক্ররেখার জন্য একটি ভিজ্যুয়াল সম্পাদক তৈরি করুন!


আপনার খুব পুঙ্খানুপুঙ্খ এবং বোধগম্য ব্যাখ্যার জন্য আপনাকে অনেক ধন্যবাদ। অন্যান্য পোস্টগুলি সমস্ত খুব সহায়ক ছিল, কিন্তু আমি সত্যিই আপনার পোস্টটি সবচেয়ে সহজ এবং দ্রুত বুঝতে পারি। এটি বিসিটিকে আটকে রেখেছিল এটি আমার বোঝার জিনিসগুলির জন্য সত্যই স্পটটিকে আঘাত করেছে। এবং আপনি যে দিকগুলি ব্যাখ্যা করছেন তা হ'ল আমি যা খুঁজছিলাম (বা ঘোরাফেরা করছিলাম)! এটি আমাকে ভবিষ্যতে অনেক ক্ষেত্রে এটি ব্যবহার করতে সক্ষম করবে। তাই আবার !!! বিটিডব্লিউ, আমি আপনার কয়েকটি বাঁক নিয়ে ঘুরে দেখলাম এবং এটি কবজির মতো কাজ করে।
দিদিতো

5
এফওয়াইআই: এগুলিকে কোয়ান্টাইল ফাংশন বলা হয়: en.wikedia.org/wiki/Quantil_function
নীল জি

8

একটি দীর্ঘ ব্যাখ্যা:

আপনার যদি একটি পছন্দসই সম্ভাবনা বন্টন থাকে যেমন গ্রেডিয়েন্ট @ ডিডিটোর জন্য জিজ্ঞাসা করা হয় তবে আপনি একটি ফাংশন হিসাবে বর্ণনা করতে পারেন। ধরা যাক আপনি একটি ত্রিভুজাকার বিতরণ চান যেখানে 0 এর সম্ভাব্যতা 0,0 এবং আপনি 0 থেকে 1 পর্যন্ত একটি এলোমেলো সংখ্যা বেছে নিতে চান We আমরা এটি y = x হিসাবে লিখতে পারি।

পরবর্তী পদক্ষেপটি হ'ল এই ফাংশনের অবিচ্ছেদ্য গণনা করা। এই ক্ষেত্রে, এটি এক্স=1এক্স2 । 0 থেকে 1 পর্যন্ত মূল্যায়ন, এটি ½ এটি উপলব্ধি করে - এটি বেস 1 এবং উচ্চতা 1 সহ একটি ত্রিভুজ, সুতরাং এর ক্ষেত্রফল ½ ½

তারপরে আপনি 0 থেকে অঞ্চল পর্যন্ত একযোগে একটি এলোমেলো পয়েন্ট বেছে নিন (আমাদের উদাহরণে ½)। যাক এই জেড কল। (আমরা ক্রমবর্ধমান বিতরণ থেকে সমানভাবে বাছাই করছি ))

পরবর্তী পদক্ষেপটি পিছনের দিকে যেতে হবে, x এর মানটি (আমরা একে x̂ বলব) z এর ক্ষেত্রের সাথে কী মিলবে তা সন্ধান করা। আমরা x = 1 খুঁজছিএক্স=1এক্স2 , 0 থেকে x̂ পর্যন্ত মূল্যায়ন, z এর সমান equal আপনি যখন1জন্য সমাধান1এক্স̂2=z- র, আপনি পেতেএক্স̂=2z- র

এই উদাহরণস্বরূপ, আপনি 0 থেকে z থেকে z বেছে নিন এবং তারপরে পছন্দসই এলোমেলো সংখ্যা 2z- র । সরলীকৃত, আপনি এটি হিসাবে লিখতে পারেনRএকটিএন(0,1) - ঠিক কী ই-বিজনেস প্রস্তাবিত।


আপনার মূল্যবান ইনপুট জন্য THX। দক্ষ লোকেরা কীভাবে সমস্যা সমাধান করে তা আমি সর্বদা শুনতে পছন্দ করি। তবে সত্য বলতে
সত্যই

এটা সত্যিই দারুন. আমি সর্বদা sqrt(random())আমার পুরো জীবন তৈরি করেছিলাম তবে আমি অনুভব করে এসেছি। একটি বক্ররেখার সাথে একটি এলোমেলো সংখ্যা বেঁধে দেওয়ার চেষ্টা করছে এবং এটি কার্যকর হয়েছে। এখন যে আমি আরও কিছু গণিত দক্ষ, কেন এটি কাজ করে তা জেনে রাখা অত্যন্ত মূল্যবান!
গুস্তাভো ম্যাকিয়েল

5

আপনি সম্ভবত একটি ক্ষতিকারক সিস্টেম ব্যবহার করে আপনি যা চান কাছাকাছি কাছাকাছি পেতে চাই।

1- (rnd ^ value) এর মতো কোনও কিছুর উপর ভিত্তি করে x তৈরি করুন (ধরে নেওয়া উচিত rnd 0 এবং 1 এর মধ্যে) এবং আপনি যা ব্যবহার করেন তার উপর ভিত্তি করে আপনি বাম থেকে ডান স্কুয়ের কয়েকটি ভিন্ন আচরণ পাবেন। একটি উচ্চতর মান আপনাকে আরও বিতর্কিত বিতরণ করবে

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

সম্পাদনা

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

(ভগ্নাংশের প্রকাশকারীরা আরও বেশি সমস্যা হতে পারে তবে আমার চেয়ে শক্তিশালী গণিতের ব্যাকগ্রাউন্ড সহ কেউ সম্ভবত একটি আনুমানিক ফাংশন তৈরির জন্য ভাল উপায় নিয়ে আসতে পারেন)


1
গ্রাফিং প্রোগ্রামটি ব্যবহার না করে আপনি কেবল বিটা বিতরণকে প্লট করতে পারেন কারণ এটি একটি বিশেষ ক্ষেত্রে। প্রদত্ত ক্ষেত্রে valueএটি বিটা (মান, 1)।
নিল জি

ধন্যবাদ. আমি কিছু গ্রাফ প্লট করার চেষ্টা করেছি এবং আমার ধারণা আমি যেখানে চাই সেখানে এটি পেতে পারে।
দিদিতো

"বিটা ডিস্ট্রিবিউশন" টিপ দেওয়ার জন্য @ নীল জি ধন্যবাদ - এটি আকর্ষণীয় এবং দরকারী বলে মনে হচ্ছে ... আমি সেই বিষয়ে কিছু গবেষণা করব
দিদিতো

3

আপনি যে শব্দটির সন্ধান করছেন তা হ'ল Weighted Random Numbers, বেশিরভাগ অ্যালগরিদম আমি দেখেছি ব্যবহারের ট্রিগ ফাংশন, তবে আমি মনে করি যে আমি এমন একটি উপায় বের করেছি যা কার্যকর হবে:

একটি টেবিল / অ্যারে / তালিকা তৈরি করুন (যাই হোক না কেন) যা এলোমেলো ফাংশনের জন্য গুণক মান রাখে। এটি হাতে বা প্রোগ্রামক্রমে ভরাট করুন ...

randMulti= {.1,.1,.1,.1,.1,.1,.2,.2,.3,.3,.9,1,1,1,} 

... তারপরে randomএলোমেলোভাবে চয়ন করা randMultiএবং শেষ পর্যন্ত বিতরণের সর্বাধিক মান দ্বারা গুণ করুন ...

weightedRandom = math.random()*randMulti[Math.random(randMulti.length)]*maxValue

আমি বিশ্বাস করি যে এটি ব্যবহারের চেয়ে আরও দ্রুত হবে sqrt, বা অন্যান্য কম্পিউটারে জটিল ফাংশন হবে এবং আরও কাস্টম গোষ্ঠীকরণের নিদর্শনগুলিকে অনুমতি দেবে।


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

@ ড্যানিয়েল এটি দ্রুত হবে তবে 100 টি এলোমেলো মান সহ, পুনরাবৃত্তি প্যাটার্নগুলি দেখতে এটি বেশ সহজ।
অ্যাটাকিংহোব

কেবল পুনরাবৃত্তি প্যাটার্ন বলে মনে হচ্ছে এর অর্থ এটি এলোমেলো নয়। এলোমেলোতার সারমর্ম হ'ল এর অপ্রস্তুতযোগ্যতা, যার আক্ষরিক অর্থ হ'ল একজন যতটা অনুমান করতে পারবেন না যে কোনও প্যাটার্ন হবে না, এমন একটিও ভবিষ্যদ্বাণী করতে পারবেন না যে এটি থাকতে পারে (কমপক্ষে স্বল্প সময়ের জন্য)। আপনাকে কিছু পরীক্ষা করতে হবে, তবে আপনি যদি বিভিন্ন বীজ ব্যবহার করে একাধিক পরীক্ষার ধরণগুলি খুঁজে পান তবে সিউডো-এলোমেলো সংখ্যা উত্পন্ন করার জন্য আপনার অ্যালগরিদমটি পর্যালোচনা করা দরকার।
র‌্যান্ডল্ফ রিচার্ডসন

এই কৌশলটির জন্য @ অ্যাটাকিংহোব থক্স আমি LUTs ব্যবহার পছন্দ করি। এবং সূত্রটি বোঝা বেশ সহজ। আমি এর আগে এইভাবে ভেবে দেখিনি। গাছের জন্য কাঠ না দেখে ... :) আমিও মনে করি পুনরাবৃত্তি নিদর্শনগুলি এড়ানো উচিত তবে সম্ভবত এই ক্ষেত্রে এটি স্বীকৃত হবে না। তবুও, সমস্ত মানকে পূর্বাভাস দেওয়ার ফলে ভিজ্যুয়াল অভিজ্ঞতার ক্ষতি হবে। যাইহোক, আমাকে স্মরণ করিয়ে দেওয়ার জন্য
THX যে এলোমেলোতার

ওয়েটড "র্যান্ডম নাম্বার" শব্দটি আনার জন্য ধন্যবাদ!
দিদিতো

2

আমি মনে করি আপনি যা চান তা হ'ল বর্গমূল ফাংশন ব্যবহার করে বিতরণ achieved

[position] = sqrt(rand(0, 1))

এটি একক মাত্রার ক্ষেত্রে এমন একটি বিতরণ দেবে [0, 1]যেখানে কোনও পদের সম্ভাবনা সেই পজিশনের সমতুল্য, যেমন একটি "ত্রিভুজাকৃতির বিতরণ"।

বিকল্প স্কোয়ারট-মুক্ত প্রজন্ম:

[position] = 1-abs(rand(0, 1)-rand(0, 1))

অনুকূল বাস্তবায়নের একটি বর্গমূলের কয়েকটি শাখা ছাড়া কয়েকটি গুণ এবং যোগফল রয়েছে। (দেখুন: http://en.wikedia.org/wiki/Fast_invers_square_root )। প্ল্যাটফর্ম এবং এলোমেলো জেনারেটরের উপর নির্ভর করে এই দুটি ফাংশনের মধ্যে কোনটি দ্রুততর হতে পারে। উদাহরণস্বরূপ একটি x86 প্ল্যাটফর্মে এটি এলোমেলো জেনারেটরে দ্বিতীয় পদ্ধতিটি ধীর করে তুলতে কেবলমাত্র কয়েকটি অবিশ্বাস্য শাখা লাগবে।


কোনও পজিশনের সম্ভাবনা পজিশনের সমান হবে না (এটি গাণিতিকভাবে অসম্ভব - তুচ্ছভাবে, ফাংশনের ডোমেন এবং পরিসীমা 0.50 এবং 0.51 উভয়ই অন্তর্ভুক্ত করে) বা এটি ত্রিভুজাকৃতির বিতরণও নয়। ( En.wikipedia.org/wiki/Triangular_distribution )

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

1
@ জো ফ্রেসনিগ, আপনি কি উইকিপিডিয়া নিবন্ধটি নিজে পড়েছিলেন, প্রজন্মের সূত্রে একটি = 0, খ = 1, সি = 1 দিয়েছিলেন এবং আপনি আমার পোস্টে সূত্রটি পেয়েছেন।
আআআআআআআআআআআআআআআআআআআআআ

3
@ লুনিন, আপনি যখন নিজের উত্তরে একটি ঘাতক পেয়েছেন তখন কেন আপনি বর্গাকার সম্পর্কে অভিযোগ করছেন?
আআআআআআআআআআআআআআআআআআআআআআ

1
@ লুনিন: পারফরম্যান্স থিওরি একটি বেশ অবহেলিত ক্ষেত্র, প্রায় 30 বছর আগে যখন ALUs ব্যয়বহুল এবং ধীর ছিল তখন লোকে প্রায় তারা সঠিকভাবে জানে বলে তারা মনে করে think এমনকি আপনি যে সুনির্দিষ্ট ক্রিয়াকলাপটি সবেমাত্র সুনির্দিষ্টভাবে আবিষ্কার করেছেন তা খুব কম পারফরম্যান্স পাপী performance ব্রাঞ্চিং (যদি একটি বিবৃতি ব্যবহার করে) এবং ক্যাশে মিস হয় না (বর্তমানে ক্যাশে থাকা না থাকা ডেটার টুকরো পড়া) সাধারণত সবচেয়ে বেশি পারফরম্যান্সের জন্য ব্যয় হয়।
আআআআআআআআআআআআআআআআআআআআ

1

কেবল একটি বিটা বিতরণ ব্যবহার করুন:

  • বিটা (1,1) ফ্ল্যাট
  • বিটা (1,2) একটি লিনিয়ার গ্রেডিয়েন্ট
  • বিটা (1,3) চতুর্মুখী

প্রভৃতি

দুটি আকারের পরামিতিগুলির পূর্ণসংখ্যার প্রয়োজন নেই।


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

1
@ ডিডিটো: এতটা কঠিন নয়। আপনি কেবল আপনার uniform_generator()কলটি প্রতিস্থাপন করুন gsl_ran_beta(rng, a, b)। এখানে দেখুন: gnu.org/software/gsl/manual/html_node/…
নীল জি

ইঙ্গিত জন্য THX। আমি জিএসএল ব্যবহার করি না (আসলে এর আগে শুনে নেই), তবে ভাল কল। আমি সূত্রটি পরীক্ষা করব!
দিদিতো

@ ডিডিটো: সেক্ষেত্রে আমি লুনিনের সমাধান নিয়ে যাব। শুভকামনা।
নীল জি

0

এমনকি সহজ, আপনার এলোমেলো জেনারেটরের গতির উপর নির্ভর করে আপনি কেবল দুটি মান তৈরি করতে পারেন এবং এগুলি গড় করতে পারেন।

বা আরও সহজ, যেখানে এক্সটি প্রথমে double y = double(1/x);, আরএনজি-র ফলাফল x = y*[maximum return value of rng];। এটি ওজন সংখ্যা কম সংখ্যায় তাত্পর্যপূর্ণ করবে।

মানকে কেন্দ্রের কাছাকাছি পাওয়ার সম্ভাবনা বাড়ানোর জন্য আরও বেশি মান উত্পন্ন এবং গড় করুন।

অবশ্যই এটি কেবল * স্ট্যান্ডার্ড বেল কার্ভ বিতরণ বা এর * ভাঁজযুক্ত সংস্করণগুলির জন্য কাজ করে তবে একটি দ্রুত জেনারেটরের সাহায্যে এটি স্কয়ার্টের মতো বিভিন্ন গণিতের ফাংশন ব্যবহার করার চেয়ে দ্রুত এবং সহজ হতে পারে।

ডাইস বেল ​​রেখাচিত্রগুলির জন্য আপনি এটির জন্য সমস্ত ধরণের গবেষণা সন্ধান করতে পারেন। আসলে, অ্যানডাইস.কম একটি ভাল সাইট যা ডাইস রোলিংয়ের বিভিন্ন পদ্ধতির গ্রাফ তৈরি করে। যদিও আপনি আরএনজি ব্যবহার করছেন, ফলাফলটি যেমন রয়েছে তেমন একই। সুতরাং এটি কোডিং করার আগেও বিতরণটি দেখার জন্য এটি একটি ভাল জায়গা।

* এছাড়াও, অক্ষটি নিয়ে এবং গড় ফলাফল বিয়োগ করে অক্ষটি যোগ করে আপনি অক্ষের সাথে ফলাফল বিতরণ "ভাঁজ" করতে পারেন। উদাহরণস্বরূপ, আপনি নিম্ন মানগুলি বেশি সাধারণ হতে চান এবং আপনাকে বলতে চান যে আপনি 15 আপনার সর্বনিম্ন মান হতে চান এবং 35 আপনার সর্বাধিক মান হতে হবে 20 এর একটি পরিসীমা So সুতরাং আপনি 20 এর ব্যাপ্তির সাথে দুটি মান তৈরি এবং গড় একসাথে করুন ( আপনি যে পরিসীমাটি চান তার দ্বিগুণ), যা ২০ টি কেন্দ্রিক একটি বেলকর্ভ দেবে (আমরা পরিসরটি ২০ থেকে ৪০ থেকে ১ 15 থেকে ৩৫ এ স্থানান্তরিত করতে শেষে পাঁচটি বিয়োগ করব)। উত্পন্ন সংখ্যাগুলি এক্স এবং ওয়াই নিন

চূড়ান্ত নম্বর,

z =(x+y)/2;// average them
If (z<20){z = (20-z)+20;}// fold if below axis
return z-5;// return value adjusted to desired range

শূন্য যদি আপনার সর্বনিম্ন হয় তবে আরও ভাল, পরিবর্তে এটি করুন,

z= (x+y)/2;
If (z<20){z = 20-z;}
else {z = z - 20;}
return z;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.