三分法解決假幣問題(JAVA

2021-08-14 13:38:43 字數 451 閱讀 3464

一,問題描述

有n個硬幣,其中有一枚是假幣,假幣比真幣要輕,現有一天平,通過比較找出假幣。

二,三分法思路

1.將硬幣分為三堆,每堆按照n/3向上取整個硬幣來分配(主要分配前兩堆,第三堆就是剩下的)

2.比較第一堆和第二堆硬幣重量

若重量相等,則在第三堆中找假幣,重複第一步

若第一堆比第二堆重,則在假幣在第二堆中,去第二堆中找假幣,重複第一步

若第二堆比第一堆重,則在假幣在第一堆中,去第一堆中找假幣,重複第一步

package algorithm;

public class test

}//第一堆比第二堆重,則在第二堆中找假幣

if (weight(a,left,m1)>weight(a,m1+1,m2))

}//第二堆比第一堆重,則在第一堆中找假幣

if (weight(a,left,m1)

三分法(洛谷3382 模板 三分法)

如題,給出乙個n次函式,保證在範圍 l,r 內存在一點x,使得 l,x 上單調增,x,r 上單調減。試求出x的值。輸入格式 第一行一次包含乙個正整數n和兩個實數l r,含義如題目描述所示。第二行包含n 1個實數,從高到低依次表示該n次函式各項的係數。輸出格式 輸出為一行,包含乙個實數,即為x的值。四...

三分法小結

二分法作為分治中最常見的方法,適用於單調函式,逼近求解某點的值。但當函式是凸性函式時,二分法就無法適用,這時三分法就可以 大顯身手 如圖,類似二分的定義left和right,mid left right 2,midmid mid right 2 如果mid靠近極值點,則right midmid 否則...

三分法查詢

我們都知道 二分查詢 適用於單調函式中逼近求解某點的值。如果遇到凸性或凹形函式時,可以用三分查詢求那個凸點或凹點。下面的方法應該是三分查詢的乙個變形。如圖所示,已知左右端點l r,要求找到白點的位置。思路 通過不斷縮小 l,r 的範圍,無限逼近白點。做法 先取 l,r 的中點 mid,再取 mid,...