Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/56: Рейтинг темы: голосов - 56, средняя оценка - 4.88
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532

Шанс. Создать шанс

31.03.2013, 22:14. Показов 13849. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто посоветует, кто предложит пряморукий, нормальный, рабочий вариант реализации шанса.
Цель: Создать программу которая будет рассчитывать шанс чего либо в зависимости от жизненных шансов человека.
В зависимости от его везения, этичности, желания, согласия на % риска. Это всё на его усмотрение. В общем изночально будет создоваться профиль человека в котором будут первые 3 пункта изночально вписаны. И при задании вопроса программе человек будет выберать примерно с чем связан вопрос(Этика, жизнь, обыденное, рискованное решение и т д.) и будет при потребности вписывать примерный шанс этого или же этот шанс будет из профиля рассчитываться и выдаваться ответ.
Внутри программы будет шанс что ответ будет 1 иначе ответ 0.
Вопрос: К примеру если 15% шанс то, как сделать что бы был шанс 15% что выподет 1. Или всё другое.
Я по началу подумывал о функции Random... Что если сделать .. Если шанс 15% то Min=1 Max=85 если но с другой стороны... если шанс 50% то надо рассчитывать из положения Min=1 Max=2 Опять же куча всяхи если, может быть и наверное. А как сделать правильно?

Буду признателен и поставлю плюсик за живой рабочий пример.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2013, 22:14
Ответы с готовыми решениями:

Как высчитать шанс?
Доброго времени суток! Помогите написать метод который получает значение типа double (1,00 - 100%, 0,5 - 50% и т.д.) и возвращает булин...

Проверить шанс выпада определенного числа
Добрый день. Подскажите, я тут велосипед изобретаю, похоже. Есть задача, проверить шанс выпада определенного числа. К примеру, шанс...

последний шанс
Товарищи, я уже задолбался искать по знакомым и друзьям, поэтому обращусь к вам: кто из Питера может помочь с прошивкой АТМеги 8-16pu в...

16
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
31.03.2013, 23:16
Цитата Сообщение от SkoTi Посмотреть сообщение
К примеру если 15% шанс то, как сделать что бы был шанс 15% что выподет 1
Массив целых, состоящий, к примеру из 100 элементов, из который 15 - единицы. И рандомом выбирать - теория вероятности.
Нужно только проверить.
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
01.04.2013, 00:05  [ТС]
кэ?
Не думаю что это толковое предположение.. И темболие без примера... Сам подумай как это будет работать.
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
01.04.2013, 00:08
а есть получше предложения? вполне естественно
(что касается твоих от 1 до 85)- какая-то нечеткая логика, явно хуже
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
01.04.2013, 00:14
SkoTi, диапазон указываешь, и рандомно выбираешь уже. хотя это лучше вариант, чем выше предложенный, но тоже не считаю его правильным.
вообще хотелось бы глянуть толковый вариант.

ах да, пример -
C#
1
2
3
4
5
6
Random r=new Random();
int i=r.Next(100);
if(i<16)
// выпало 1 15%
else
//выпало другое 85%
в общем что то в этом роде
1
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
01.04.2013, 00:17
Цитата Сообщение от Winhttp22 Посмотреть сообщение
Random r=new Random();
int i=r.Next(100);
if(i<16)
// выпало 1 15%
else
//выпало другое 85%
и
Цитата Сообщение от Winhttp22 Посмотреть сообщение
это лучше вариант, чем выше предложенный
думай хорошенько, прежде чем что-либо писать
<16 - все значения в начале диапазона, я же имел ввиду разбросать единицы равномерно по массиву
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
01.04.2013, 00:21  [ТС]
Winhttp22 Хм.... А это вариант..

Добавлено через 2 минуты
Winhttp22 Но мне всёравно кажется не то.. Если указать i<51
То всёравно может 3 раза подрят выпасть и 98 и 72 и 55 ну хз вобще.. Конеш вариант но хотелось бы ещё какойнить вариант.
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
01.04.2013, 00:29
Цитата Сообщение от IamRain Посмотреть сообщение
и

думай хорошенько, прежде чем что-либо писать
<16 - все значения в начале диапазона, я же имел ввиду разбросать единицы равномерно по массиву
и что, что в начале? рандому не пофиг - где?
честно скажу - сам раньше искал инфу об этом в инете. так как предложенный мною вариант меня не устраивал. что интересно - в инете нашел такой же вариант. так что он имеет право жить и предложенный IamRain вариант тоже встречал. но другой реализации не нашел

Добавлено через 2 минуты
Winhttp22 Но мне всёравно кажется не то.. Если указать i<51
То всёравно может 3 раза подрят выпасть и 98 и 72 и 55 ну хз вобще..
я может не так понял? но если ты укажешь - i<51, то шанс выпадения будет 50 на 50, а значит если выпадет - 98 и 72 и 55 - то так и должно быть.
не?
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
01.04.2013, 00:31  [ТС]
Winhttp22 Ну ок... =) Будем пытатся методом проб и ошибок. =)) А ты чесно заработал Плюсик =)) ТО что выше предлогал вариант.. Он просто мнение вырозил А я обещал плюсануть того что ещё дельный пример выложил.. =) Без обид.

Добавлено через 45 секунд
Winhttp22 Не обращай внимание.. Я просто загнался....
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
01.04.2013, 00:49
Они равнозначны:
Миниатюры
Шанс. Создать шанс  
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
01.04.2013, 00:52
Вот так лучше видно:
Миниатюры
Шанс. Создать шанс  
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 01:07
ТС радует: сначала по-падонаффски изъясняется, потому посылает всех со словами "думай че говоришь" и кульминация - "заслужил плюсик"... прям какой-то уголок дурова.
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
01.04.2013, 01:10
Цитата Сообщение от Psilon Посмотреть сообщение
думай че говоришь
Это я посылал всех.
Но признаю, методы примерно равнозначны + мой дает сбои при больших значениях, да еще первый легче в реализации.
0
 Аватар для N!K
19 / 19 / 1
Регистрация: 04.03.2010
Сообщений: 86
01.04.2013, 09:09
Может такой вариант подойдет
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
namespace Test
{
   
    internal class Program
    {
        private static void Main(string[] args)
        {
            int shans = 0;
            Console.Write("Введите % успеха -> ");
            int.TryParse(Console.ReadLine(), out shans);
            int percent = 100/shans;
 
            for (int i = 1; i <= 100; i++)
            {
               Console.WriteLine(i%percent == 0 ? "Успех": "Неудача"); 
            }
        }
    }
}
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
01.04.2013, 10:46
Вот про это я и говорил, когда упомянул "сбои" при больших значениях.
Введите shans = 51
0
 Аватар для N!K
19 / 19 / 1
Регистрация: 04.03.2010
Сообщений: 86
01.04.2013, 11:31
Цитата Сообщение от IamRain Посмотреть сообщение
Вот про это я и говорил, когда упомянул "сбои" при больших значениях.
Введите shans = 51
Действительно, не учел(
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 13:12
Омг
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Prob
{
    class Program
    {
        static void Main(string[] args)
        {
            const int n = 10000;
            int shans = 0;
            Console.Write("Введите % успеха -> ");
            var r = new Random();
            int.TryParse(Console.ReadLine(), out shans);
            double res = shans/100.0;
            int dealcount = 0, notdealcount = 0;
            for (int i = 0; i < n; i++)
            {
                if (r.NextDouble() < res)
                {
                    Console.WriteLine("Удача");
                    dealcount++;
                }
                else
                {
                    Console.WriteLine("Неудача");
                    notdealcount++;
                }
            }
            Console.WriteLine("Удач - {0}\tНеудач - {1}",(100.0*dealcount)/n,(100.0*notdealcount)/n);
            Console.ReadKey();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.04.2013, 13:12
Помогаю со студенческими работами здесь

Второй шанс
Девушки! Дали ли бы вы второй шанс м..ку, который опоздал на второе свидание на полтора часа, пришел бухой и все делал не так? Можно ли...

Шанс выпадения
Передо мной стоит задача сделать шанс выпадения предметов. Суть такая, есть некий ящик, в котором лежат вещи(от10 до 50 вещей). Нужно...

Шанс выполнения команды
Такой вопросик , есть ли команда, или как реализовать что б было примерно так , я пишу for(i=0;i&lt;=max;) /* вводим переменую шанса...

Шанс выпадения числа
Доброе время суток,подскажите как правильно сделать шанс выпадения числа. У меня есть массив чисел от 1 до 6, нужно чтобы число 1...

Шанс спалится с openVPN
всем привет, сижу в инете через прокси сервер который блочит нужные мне сайты. нашел выход, с помощью проги OpenVPN каковы шансы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru