[[20200917210858]] 『おやつの数を均等に割る方法』(aki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『おやつの数を均等に割る方法』(aki)

おやつの数を、一人当たりの数が平等になるように割るにはどうすればよろしいでしようか。

2人で分ける場合であれば
片方は、切り捨て
もう片方は切り上げで対応出来ました。

例)
5個のおやつを2人で分ける
Aさん → =INT(5/2)
Bさん → =ROUNDUP(5/2,0)

ただ、これが例えば3人、4人だった場合
どのように考えればよろしいでしょうでしょうか。

具体的なパターンを挙げて法則を見つけ出そうとしたのですが上手くいかず。。。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 端数(残り)の処理で違うんじゃないですかね?
 切り刻まれたおやつで良いのかとも・・・。

(Why) 2020/09/17(木) 21:41


ありがとうございます。

んー、どうしても余りが出てくるケースもあるので
そういうのは現実問題、残りを誰が取るかじゃんけんですかね。。。

例えば、5個を3人なら、1個、1個、2個しかないですね。
飴玉みたいに、1個を半分に割るみたいなことが出来ないものとして。

根本的に計算方法違うんですかねー。
実際トランプゲームでトランプを手札としてディーラーが分けるのを思い返すと、
1個ずつ分けていってが確実な方法なんですよね。

Excelで考えるのが難しそうですかね。。。
調べてもそういったWebサービスも見つからないので、
おやつじゃなくても、みなさんは均等割をどう計算しているんでしょう。。。
(aki) 2020/09/17(木) 22:43


 >実際トランプゲームでトランプを手札としてディーラーが分けるのを思い返すと、
 >1個ずつ分けていってが確実な方法なんですよね。

 それで良ければ

 B3セル =IF(A3="","",INT(B$1/COUNT(A:A))+(B$1-INT(B$1/COUNT(A:A))*COUNT(A:A)>=ROW(A1)))
 下にコピー

 <3人のケース>      <4人のケース>
  行  ___A___  _B_         行  ___A___  _B_
   1  おやつ     5          1  おやつ     5
   2  人目                  2  人目        
   3       1     2          3       1     2
   4       2     2          4       2     1
   5       3     1          5       3     1
   6                        6       4     1

(半平太) 2020/09/17(木) 23:01


わたしは、数式の意味がわからないので、ソルバー使ってみました。

(マナ) 2020/09/17(木) 23:14


B1:おやつの数
B2:人数
として
多くもらえる人がもらえる数:INT(B1/B2)+1
標準的にもらえる数:INT(B1/B2)
多くもらえる人の数:MOD(B1,B2)
標準的にもらえる人の数:B2-MOD(B1,B2)
ですかね。
※割り切れるときに多くもらえる人の数が0人=多くもらえる人はいないってことになります。

ただ、これってExcelの使い方の問題なのかな・・・。
せっかくExcel使うなら他の方々がおっしゃっているみたいにソルバー使ったりループでシミュレーション走らせると面白かった李はしますが。
(高橋) 2020/09/18(金) 01:45


 ○個のおやつを各○等分にすれば、○人に平等でくばれるって話なんですかね?
 4人だったら、3つのおやつを各4等分して配るとか。
 こういう考え?
(Why) 2020/09/18(金) 07:32

割れないものが対象なら、Excel上は切り捨てで計算するしかないのでは? 余った分をどうするかは、皆で分配方法を決める。(じゃんけんやクジ引き、または第3者に渡すとか)

この質問を見て、17頭のラクダの話を思い出しました。1/2,1/3,1/9に分配するやつ。
(???) 2020/09/18(金) 09:36


 子供にホールケーキや、カップアイス等1個を複数に分けるときは、
 切り分けた人が最後に選ぶようにする、みたいなことはやってます。
 精神的な均等なので、物理的には多い人もいれば、少ない人もいますけどね。

 物理的な均等にするなら、すべて砕いてg単位で分けるしか・・・もはやお菓子じゃない。

 3人で2個のものを2人に譲って、譲った1人が2人から半分ずつもらえばみんな同じだねっていう
 ずるがしこい話を思い出しました。
 うちの母ですが。

 エクセルで考えるなら、ソルバーとか面白いんでしょうけど
 これでB5の値を変更して、余りが0になるようなシミュレート?
 これも、人数が素数だと、0にするにはその数以外しかないから、
 現実的には2,3,4,5,6分割くらいしか答えが無いような・・・

    |[A]       |[B]|[C] |[D]           
 [1]|おやつ    |256|個  |              
 [2]|人数      | 79|人  |              
 [3]|手取ホール|  3|個  |=INT(B1/B2)   
 [4]|W余り     | 19|個  |=MOD(B1,B2)   
 [5]|分割数    |  5|分割|              
 [6]|手取パーツ|  1|/5個|=INT(B4*B5/B2)
 [7]|余り      | 16|/5個|=MOD(B5*B4,B2)
(稲葉) 2020/09/18(金) 10:15

 証拠にもなくまた書いてしまった感満載ですけど、、
ユーザー定義関数です。
=おやつ(A1,B1)
と入力して少し広めに範囲(C1〜F1)を選択した状態でCtrl+Shift+Enterで確定して下にフィルします。
するとこんな感じになります。#N/Aは条件付き書式で消してください。(おぉっぉいいm(__)m)

 A______B_______C_______D________E________F
5	2	3	2	#N/A	#N/A
6	3	2	2	2	#N/A
6	2	3	3	#N/A	#N/A
7	3	3	2	2	#N/A

 Option Explicit
Function おやつ(ByVal v As Range, ByVal 人数 As Range) As Variant
Dim x As Variant
Dim i As Long
Dim n As Long
ReDim x(人数 - 1)
For i = 1 To v.Value
  If UBound(x) < n Then n = 0
  x(n) = x(n) + 1
  n = n + 1
Next
おやつ = x
End Function
(SoulMan) 2020/09/18(金) 16:27

 半平太さんの表をお借りして、B3セルに
 =IF(A3="","",ROUNDUP((B$1-SUM(B$2:B2))/(COUNT(A:A)-A2),0))
 で。
(ねむねむ) 2020/09/18(金) 16:29

 =IF(A3="","",INT(B$1/COUNT(A:A))+(MOD(B$1,COUNT(A:A))>=A3))
 でもいいか。
(ねむねむ) 2020/09/18(金) 16:37

高橋さんのコメントで、数式の意味が理解できました。
わかってしまうとトランプの例えもわかりやすいです。

(マナ) 2020/09/18(金) 17:03


		個数	100

		分けた個数
	A	15	=INT($D$1/COUNTA($B$4:$B$15))+IF(MOD($D$1,COUNTA($B$4:$B$17))<COUNTA($B$4:C4),0,1)
	B	15	
	C	14	
	D	14	
	E	14	
	F	14	
	G	14	

余りをもらえる人ともらえない人の判定ができればいいんでは?
(まっつわん) 2020/09/18(金) 19:03


皆さまありがとうございます。

ソルバーが頭に思い浮かばなかったです。
つるかめ算を解く例を見たことは前に見たことがあったのですが、
知っていて使うことが出来なかった機能でした。

現実的にはこちらかもしれません。

ただ、関数で作って頂いた例も面白いです。
一連の手続きをワンライナーの関数で表現出来るのも凄いですね。

17頭のラクダの逸話笑いました。
おやつで喧嘩はして欲しくないですね。

「精神的な均等」という表現好きですね。
とあるコンサルティングが
「ケーキを2人で分ける場合、単に2等分するというのは正解ではない。
お互いの要望を聞いてそれを反映させたものが答えだ。」
という話をしているのを思い出しました。

ただ、求めていた出来る限り物理的に平等な求め方は
おかげさまでかなり方法を得られることが出来たと思います。

ありがとうございました。

(aki) 2020/09/18(金) 20:40


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.